9100 - 远古的密码-2
时间限制 : 1 秒
内存限制 : 128 MB
在古希腊,有一个很小的城邦国家,他们之前找了一个水货密码学专家XYZ给他们设计一套密码。因为密码规则过于简单,需要重新设计。现在他们找到了大龙大同学。大龙大同学是方圆百里有名的密码学专家,号称设计的密码无人能够破解。他设计的密码规则是如下:
(1)如果是小写字母,就用它在字母表上的后面d位的字母替代。如果c',字母'c'对应的d值为-1,则加密之后的字符为'b'。并且加密之后的字符也应该为字母。再比如字母'x'对应的d值为4,因为'x'的后面2位为'z',再往后就不在字母表中了,所以要循环到字母表的开头去取值,得到加密后为'b'。即字母的加密符合循环轮替。
(2)如果是空格,则随机的用'@'、'<'、'>'、'='、'['、']'替换。需要编码的原文中保证不包含'@'、'<'、'>'、'='、'['、']'字符。
(3)如果是英文的逗号',',则替换成'.'。而遇到标志句子结束的'.'号时,替换成英文的','。
(4)大小写字母对应的d值是不一样的。
(5)对于其它符号,不做任何变化。
在这个规则中,字母的d值称为密码值,记录了'A'-'Z'和'a'-'z'的d值。d值是事先给定的。
为了破译密码,我们需要知道加密之后的密码值,我们称为逆值。举例来说,当'A'的密码值d为2,则'A'的加密规则为'A'+2='C',这样得到'C'的逆值为-2。也就是说,'C'加上逆值-2就可以恢复出字母'A'来。
输入
第一行为一个字符串,字符串长度不超过300.
第二行为26个整数,数字之间用空格隔开,表示'A'-'Z'的逆值,即第二行第一个数字是'A'的逆值,第二个为'B'的逆值,......,第26个为 'Z'的逆值 。
第三行为26个整数,数字之间用空格隔开,表示'a'-'z'的逆值。
输出
一行字符,表示解码后的字符串。
样例
输入
Bgc>gme.=jqx[ngu? 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 0 -27 0 -18 0 0 -9 0 0 -1 -15 0 0 1 0 0 0 0 0 0 7 0 0
输出
How old, are you?