#3748. 数字问题-2.2-数字谜题破解

数字问题-2.2-数字谜题破解

题目描述

在一些游戏与休闲的书刊中,经常会看到如下的数字谜:

   VINGT
    CINQ
+   CINQ
----------
  TRENTE

试编写一个程序进行破解。

说明

数字谜的规则如下:

  1. 不同的英文字母表示不同的数字。因此,题目中最右边一行的T、Q、E就是不同的数。
  2. 每一个数最左边一位不是0。所以上面的谜题中,V、C、T都不是0。
  3. 上面的题目是加法,表示VINGT这个五位数与CINQ这个四位数的两倍相加后,会得到TRENTE这个六位数,并且数字的安排如谜语所示。

输入格式

第一行,一个由大写字母组成的字符串,表示被加数 第二行,一个由大写字母组成的字符串,表示加数1 第三行,一个由大写字母组成的字符串,表示加数2 第四行,一个字符串表示输出的结果

输出格式

输出所有可能的解,每行一个解,格式为:

C=6 E=7 G=5 I=4 N=8 Q=3 R=0 T=1 V=9

每个解,需要按照字母的ascii码的顺序输出,就是ascii码小的字母排前面,ascii码大的子母排后面 如果有个多个解,则计算所有子母的解的和排序,和小的先输出 如果和也相同,则把每个字母的值挨个比较,优先输出小的

如果没有解,输出"NO SOLUTION"。

示例输入1

VINGT
CINQ
CINQ
TRENTE

示例输出1(可能的所有解)

C=6 E=7 G=5 I=4 N=8 Q=3 R=0 T=1 V=9

示例输入2

A
B
C
D

示例输出1(可能的所有解)

A=1 B=2 C=3 D=6
A=1 B=3 C=2 D=6
A=2 B=1 C=3 D=6
A=2 B=3 C=1 D=6
A=3 B=1 C=2 D=6
A=3 B=2 C=1 D=6
A=1 B=2 C=4 D=7
A=1 B=4 C=2 D=7
A=2 B=1 C=4 D=7
A=2 B=4 C=1 D=7
A=4 B=1 C=2 D=7
A=4 B=2 C=1 D=7
A=1 B=2 C=5 D=8
A=1 B=3 C=4 D=8
A=1 B=4 C=3 D=8
A=1 B=5 C=2 D=8
A=2 B=1 C=5 D=8
A=2 B=5 C=1 D=8
A=3 B=1 C=4 D=8
A=3 B=4 C=1 D=8
A=4 B=1 C=3 D=8
A=4 B=3 C=1 D=8
A=5 B=1 C=2 D=8
A=5 B=2 C=1 D=8
A=1 B=2 C=6 D=9
A=1 B=3 C=5 D=9
A=1 B=5 C=3 D=9
A=1 B=6 C=2 D=9
A=2 B=1 C=6 D=9
A=2 B=3 C=4 D=9
A=2 B=4 C=3 D=9
A=2 B=6 C=1 D=9
A=3 B=1 C=5 D=9
A=3 B=2 C=4 D=9
A=3 B=4 C=2 D=9
A=3 B=5 C=1 D=9
A=4 B=2 C=3 D=9
A=4 B=3 C=2 D=9
A=5 B=1 C=3 D=9
A=5 B=3 C=1 D=9
A=6 B=1 C=2 D=9
A=6 B=2 C=1 D=9

输入数据3:

AAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBB

输出数据3:

A=1 B=3
A=2 B=6
A=3 B=9