#CF1932C. C. LR-余数
C. LR-余数
C. LR-余数
每个测试的时间限制:2 秒
内存限制:256 兆字节
给定一个长度为 的数组 、一个正整数 和一个长度为 的指令字符串。
每个指令是字符 'L' 或 'R'。
按字符串 中给出的顺序处理所有 条指令。处理一条指令的过程如下:
- 首先,输出数组 中所有元素的乘积除以 的余数。
- 然后,如果指令是
'L',则移除数组 中最左边的元素;如果指令是'R',则移除数组 中最右边的元素。
注意:在每一步之后,数组 的长度减少 ,并且处理完所有指令后,数组将为空。
编写一个程序,按照字符串 中的顺序(从左到右)处理所有指令。
输入
第一行包含一个整数 ()—— 输入中测试用例的数量。
接下来是 个测试用例的描述。
每个测试用例由三行给出:
- 第一行包含两个整数 和 (,)—— 数组 的初始长度和取余的模数。
- 第二行包含 个整数 ()—— 数组 的元素。
- 第三行包含一个由 个字符
'L'和'R'组成的字符串 。
保证所有测试用例的 之和不超过 。
输出
对于每个测试用例,输出 个整数 ,其中 是在执行第 条指令开始时,当前状态数组 的所有元素的乘积除以 的余数。
示例
输入
4
4 6
3 1 4 2
LRRL
5 1
1 1 1 1 1
LLLLL
6 8
1 2 3 4 5 6
RLLLRR
1 10000
10000
R
输出
0 2 4 1
0 0 0 0 0
0 0 0 4 4 4
0
示例解释
在第一个测试用例中:
- ;
- ,所以移除第一个元素,得到数组 ;
- ;
- ,所以移除最后一个元素,得到数组 ;
- ;
- ,所以移除最后一个元素,得到数组 ;
- ;
- ,所以移除第一个元素,得到空数组。