# Answer to Question #14504 in C++ for natzuyuki

Question #14504

Write a program to solve a set of magic formula.

A magic formula is obtained by transforming an ordinary formula like 120 + 456 = 576 into ZAD + REC = EFC. The transformation is

done by setting 1 to Z, 2 to A, 0 to D, 4 to R, 5 to E, 6 to C, and 7 to F.

Now given a set of magic formula, find the digits represented by the letters appearing in the formula. Note that there will be at most 10 different upper case letters in these formula, the leading letter of all numbers could not be 0, and different letters represent different digits.

For example, the Z, R, and E could not be 0 in ZAD + REC = EFI, and all Z, A, D, R, E, C, F, and I represent different digits. It is also guaranteed that there will be exactly one set of solution. The magic could be addition (+), subtraction (-), or multiplication (*). The number of magic formula is no more than 3, the number of digits of every number is no more than 5, and all numbers are positive.

Input Format

The first line contains a integer N, which is the number of magic formula (ranged from 1 to 3, both inclusive)

And each of the following N lines contains a magic formula. The format of magic formula is

lvalue op rvalue = result

where lvalue, rvalue, and result are strings with upper case letters, and op is the operator (either +, -, or * ).

Note that they are seperated by exactly one space.

Output Format

For each magic formula, your program should output the ordinary formula.

Each formula a line with the same order of original formula, and seperate each number and operator by exactly one space.

Example

Sample Input:

Sample Output:

1

SEND + MORE = MONEY

9567 + 1085 = 10652

3

MADE + MEAD = EDAM

EME * EME = CCDCC

HK - GF = FC

1692 + 1269 = 2961

212 * 212 = 44944

87 - 53 = 34

A magic formula is obtained by transforming an ordinary formula like 120 + 456 = 576 into ZAD + REC = EFC. The transformation is

done by setting 1 to Z, 2 to A, 0 to D, 4 to R, 5 to E, 6 to C, and 7 to F.

Now given a set of magic formula, find the digits represented by the letters appearing in the formula. Note that there will be at most 10 different upper case letters in these formula, the leading letter of all numbers could not be 0, and different letters represent different digits.

For example, the Z, R, and E could not be 0 in ZAD + REC = EFI, and all Z, A, D, R, E, C, F, and I represent different digits. It is also guaranteed that there will be exactly one set of solution. The magic could be addition (+), subtraction (-), or multiplication (*). The number of magic formula is no more than 3, the number of digits of every number is no more than 5, and all numbers are positive.

Input Format

The first line contains a integer N, which is the number of magic formula (ranged from 1 to 3, both inclusive)

And each of the following N lines contains a magic formula. The format of magic formula is

lvalue op rvalue = result

where lvalue, rvalue, and result are strings with upper case letters, and op is the operator (either +, -, or * ).

Note that they are seperated by exactly one space.

Output Format

For each magic formula, your program should output the ordinary formula.

Each formula a line with the same order of original formula, and seperate each number and operator by exactly one space.

Example

Sample Input:

Sample Output:

1

SEND + MORE = MONEY

9567 + 1085 = 10652

3

MADE + MEAD = EDAM

EME * EME = CCDCC

HK - GF = FC

1692 + 1269 = 2961

212 * 212 = 44944

87 - 53 = 34

Expert's answer

Unfortunately, your question requires a lot of work and cannot be done for free.

Submit it with all requirements as an assignment to our control panel and we'll assist you.

## Comments

## Leave a comment