Write a program to solve a simple class of cryptarithmetic problems MORE EFFICIENTLY THAN BY BRUTE FORCE (EXHAUSTIVE SEARCH) by using deductions about even/odd, digit range, etc. For example, in the test case CADET +CORPS ------ TROOP given below your program can deduce that C<5. (You do not have to use this deduction; this is just an example of a deduction which would reduce the search space.) By convention, each letter stands for a different digit and there are no leading zeroes. You program should read strings (hint: in C, use fgets), right justify the strings to make an addition problem, and find a solution. If there is more than one solution, you only need to find one. For the example in Figure 5.2, the input would be TWO TWO FOUR Run your program on this example plus the following: JAVA OOP LANG CADET CORPS TROOP KYLE FIELD AGGIE The grader will also run your project on additional problems. You may assume the input contains only upper case letters, and no more than 10 different letters.