暗号(cypher)
题目描述
有一个密码锁,这个密码锁由 个数字轮组成。每个数字轮上都有一个数字 ,数字范围是 到 。
曾经对每个数字轮进行了一些操作。每次操作有两种类型:
- :将当前数字增加 。如果当前数字是 ,执行 后会变成 ;
- :将当前数字减少 。如果当前数字是 ,执行 后会变成 。
现在 只知道每个数字轮经过所有操作后的 最终数字 ,以及每个数字轮执行过的操作序列。
请你帮助 推出每个数字轮 最开始的数字 。
输入格式
第一行包含一个整数 ,表示测试用例的数量。
对于每个测试用例:
第一行包含一个整数 ,表示数字轮的数量。
第二行包含 个整数 ,表示每个数字轮经过所有操作后的最终数字。
接下来有 行,第 行包含一个整数 和一个长度为 的字符串,表示第 个数字轮执行了 次操作。
字符串只包含字符 和 。
输出格式
对于每个测试用例,输出一行,包含 个整数,表示每个数字轮最开始的数字。
相邻两个整数之间用一个空格隔开。
输入输出样例 #1
输入 #1
3
3
9 3 1
3 DDD
4 UDUU
2 DU
2
0 9
9 DDDDDDDDD
9 UUUUUUUUU
5
0 5 9 8 3
10 UUUUUUUUUU
3 UUD
8 UUDUUDDD
10 UUDUUDUDDU
4 UUUU
输出 #1
2 1 1
9 0
0 4 9 6 9
样例解释 #1
对于第 组测试数据:
第 个数字轮最终为 ,操作序列为 。 因为 表示原操作中数字减少 ,所以反推时要将数字增加 。
因此它最开始的数字是 。
第 个数字轮最终为 ,操作序列为 。 操作中一共有 次 和 次 ,所以原来的数字经过操作后整体相当于增加了 。反推时需要减少 :
因此它最开始的数字是 。
第 个数字轮最终为 ,操作序列为 。 一次 和一次 相互抵消,所以最开始的数字仍然是 。
输入输出样例 #2
输入 #2
2
1
0
1 U
4
0 9 5 6
10 UUUUUUUUUU
10 DDDDDDDDDD
5 UUUUU
5 DDDDD
输出 #2
9
0 9 0 1
样例解释 #2
对于第 组测试数据:
最终数字为 ,操作为 。说明最开始的数字是 ,因为:
对于第 组测试数据:
- 第 个数字轮执行了 次 ,数字绕了一整圈,所以初始数字仍为 ;
- 第 个数字轮执行了 次 ,数字绕了一整圈,所以初始数字仍为 ;
- 第 个数字轮最终为 ,执行了 次 ,所以初始数字为 ;
- 第 个数字轮最终为 ,执行了 次 ,所以初始数字为 。
数据范围与约定
对于所有测试数据,保证:
$$1 \le t \le 100,\quad 1 \le n \le 100,\quad 0 \le a_i \le 9,\quad 1 \le b_i \le 10 $$| 测试点 | 分值 | 特殊性质 | |||
|---|---|---|---|---|---|
| 无 | |||||
| 无 | |||||
特殊性质 :保证所有操作字符均为 。
特殊性质 :保证所有操作字符均为 。
京公网安备11010802045784号