题号:NC214456
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
代号008的特工James Leaves截获了一些敌国的密文,经过一段时间的破译,Leaves终于弄清了密文的加密方式。敌国会先对明文进行一次恺撒加密,得到中间密文,再对中间密文进行一次栅栏加密,得到最终密文。
两种加密方式解释如下:
恺撒加密方式:将明文中的所有字母都在字母表上向后偏移x位,得到密文。当x为1时,a变成b,b变成c……z变成a。例如:明文为"winterzzl",x为2时,将明文中的所有字母向后偏移2位,加密后的结果为"ykpvgtbbn"。
栅栏加密方式:将明文平分为2组,先取每组的第1个字母,再取每组的第2个字母……直到取完为止。若明文无法被平分,则第1组比第2组多1个字母。例如:明文为"tokitsukaze",将明文平分为2组,分别为"tokits"和"ukaze",按顺序取完后的结果为"tuokkaiztes"。
Leaves将最终密文和恺撒加密的偏移量x给你,请你恢复出明文。
输入描述:
第一行有一个正整数
,表示有T组数据。
每组数据的第一行有一个字符串
,表示最终密文,保证字符串$s$全部由小写字母组成。
每组数据的第二行有一个数字
,表示恺撒加密的偏移量。
输出描述:
对于每组数据,输出加密前的明文。
示例1
输入
复制
2
ixfpmsmmpe 1
ijqcqxfgnhwwepm 2
输出
复制
helloworld
goodluckhavefun