\overline{X_1X_2\dots X_n}= \overline{Y_1Y_2\dots Y_m}
的等式称为二进制方程。
在二进制方程的两边:X_i 和 Y_j(1\le i\le n 且 1\le j \le m)是二进制数字 01 或者一个变量(小写字母)。每个变量都是一个有固定长度的二进制代码,他可以在等式中取代变量的位置,称这个长度为变量的长度。为了解一个二进制方程,需要给其中的变量赋予适当的二进制代码,使得我们用他们替代等式中的相应的变量后(等式的两边都变成二进制代码),这个等式成立
编程任务:
对于每一个给出的方程,计算一共有多少组解。
第一行:k,代表变量的个数,规定使用小写英文字母中的前 k 个字母作为变量(如 k=5,则变量有 a,b,c,d,e)。
第二行:k 个正整数,中间用一个空格隔开,依次代表 k 个变量的长度。
第三行:等式左边的表达式。
第四行:等式右边的表达式。
一个数,代表等式中出现的变量共有多少组解。
2 4 2 1b1 a
4
5 4 2 4 4 2 1bad1 acbe
16
一共有 4 组解,如下所示:
a=1001,b=00。
a=1011,b=01。
a=1101,b=10。
a=1111,b=11。
k=5,所以变量有:a,b,c,d,e,长度分别为:4\space 2\space 4\space 4\space2。等式是:\overline{1bad1}=\overline{acbe}。
所以输出 16,即变量 a,b,c,d,e 共有 16 组解。
k\le 26,因为变量最多有 26 个(26 个英文小写字母)。
等式的每一端的数字和变量的长度之和不超过 10000。
山东省选