U283431 加密通话

题目背景

维吉尼亚密码是一种经典的加密的方式。维吉尼亚密码对明文进行加密需要密钥和密码表(大小为 $26×26$ )。 举例说明: 在本次加密中,密码表如下图**绿色**方框部分所示: (图中第一行和第一列是密码表隐含的的**行列标识**,例如密码表的第`W`行第`F`列的字母是`B`) ![img](https://7265-release-5gxeaot882cf5b43-1312410623.tcb.qcloud.la/manager_data/image/1677772554238.png) ``` 明文为 WaiBiWaiBi 密钥为 Fei ``` 先将密钥本身进行重复,直至长度和明文相同,结果如下: ``` 明文为 WaiBi WaiBi 密钥为 FeiFe iFeiF ``` 接下来对于明文的第 $i$ 个字母,确定到密码表中这个字母对应的**行**;对于密钥的第ii个字母,确定到密码表中这个字母对应的**列**。行列相交处的字母,就是密文的第ii个字母。(加密后字母的大小写保持不变,且空格不参与加密) 密文的第一个字母`B`的得出在图中已经形象的说明了,选取第`W`行第`F`列的字母`B`。 明文加密完毕的结果为:`BeqGm EfmJn` 。 那么维吉尼亚密码的密码表是如何得来的呢?本次加密使用的密码表实际上是经典的维吉尼亚密码表。但可以注意到,在这种加密方式下,只要密码表的**每一列中的字母都互不相同**,那么在密钥确定的情况下,明文和密文是一一对应的。因此在本题中,每一列中的字母都互不相同的密码表就认为是合法的。

题目描述

给予加密所用的**密钥**以及**明文**,以及经过加密后得到的**密文**。如果加密的方法和题目背景所述的相同,请你求出加密所用的**密码表**。注意: - 正确的加密方法同题目背景所述; - 密钥只包含大小写英文字母; - 明文和密文中包含大小写英文字母和空格,加密后字母的大小写保持不变,且空格不参与加密(应在密文中原样输出空格)。

输入格式

多组数据输入,以文件终止符 `EOF` 结尾。 对于每组数据: 第一行是字符串,代表密钥,长度不超过 $10^3$ ; 第二行是字符串,代表明文。长度不超过 $10^5$ ; 第三行是字符串,代表密文。长度不超过 $10^5$ 。

输出格式

对于每组数据: - 若无法正确得到密码表,输出一行字符串:`ARE YOU GOOD MALAYS1A?` ; - 若能够得到正确的密码表,输出 $26$ 行,每行 $26$ 个字符,代表密码表。约定密码表隐含的**行列标识**和题目背景中描述得一样。对于密码表中可以确定的位置,输出该位置上应该填入的**大写字母**;对于密码表中不能确定位置,在这个位置上输出一个单引号 `'` 。 - 之后输出一行空行