SP18598 SNGMSG - Encode Message

题目描述

沙贾汗对穆塔兹的爱众人皆知,他甚至为她建造了泰姬陵。一次,穆塔兹因争吵回了娘家。沙贾汗写信请求她回来,但意识到用未加密的明文写信可能不安全,于是绞尽脑汁想了一个独特的加密方式。 他的加密方法是这样的: 1. **密钥 K** 是由数字(0-9)组成的一组数,总值不超过 $10^6$。 2. **消息 M** 是由小写字母(a-z)组成,长度不超过 500。 3. **编码函数 F(m, k) = m'** 是一个函数,每次选密钥中的一个数字和消息中的一个字符,将二者编码为新的字符。 编码算法可以用以下伪代码描述: **伪代码:** 1. 当消息中还有需要编码的字符时,重复以下步骤: 2. 读取消息中的下一个 **字符 c**。 3. 读取密钥中的下一个 **数字 k**。 4. 使用 **函数 F(m, k) = m' : m' = m + k** 进行编码。 5. 如果密钥中的最后一个数字 k 已读取完毕,则从反方向开始读取。 6. 如果在反向读取中遇到了密钥的第一个数字 k,则再次从正方向重新开始。 字符的加法是循环的,举例如下: - 'a' + 2 = 'c' - 't' + 1 = 'u' - 'z' + 2 = 'b' - 'y' + 0 = 'y' 例如,使用密钥 **132** 对消息 **"mumtaaz"** 进行编码过程如下: | 字符 c | 数字 k | F(c, k) | |--------|--------|---------| | m | 1 | n | | u | 3 | x | | m | 2 | o | | t | 1 | v | | a | 3 | d | | a | 2 | b | | z | 1 | a | 因此,消息 "mumtaaz" 被编码为 **"nxovdba"**。

输入格式

第一行是测试用例数量 **T**($T < 10001$)。每个测试用例包括两行:第一行是密钥,第二行是已编码的消息。

输出格式

对于每个测试用例,输出一行解码后的原始消息。

说明/提示

- $1 \le T < 10001$ - 密钥长度上限为 7 - 消息长度上限为 500 **本翻译由 AI 自动生成**