4990: OI联盟[202404]T3 围圈传球

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:0

题目描述

小W 决定和他的朋友们一起玩个游戏。n 个人围成一圈。
n 个人按照顺时针的方向从 1 编号到 n。
一开始,球在第 x 个人手中,然后不断地进行顺时针或者逆时针传递。
每次传递规定顺时针或者逆时针,和传递的距离。
例如:如果有 7 个小朋友玩这个游戏,现在球到第 2 个小朋友手中,选择顺时针传递 5 的距离,那么球就到编号为 7 的小朋友手中;选择逆时针传递 5 的距离,那么球就到编号为 4 的小朋友手中。


游戏将进行 m 轮(进行 m 次传递),但是 小W 只记得传递的距离和 一些 传递的方向。
请问进行了 m 轮传递之后,球到了谁的手中,需要输出所有的可能性。

输入

第一行包含三个正整数 n,m,x (1<= x <= n),分别表示小朋友的数量、传递的次数、球一开始在谁手中。
接下来 m 行包含每次传递的信息,每行包括一个整数 r_i (1<= r_i<= n-1),表示第 i 次传递的距离;以及一个符号 c_i ,可以是 “0”、”1”、”?”:
如果 c_i = ‘0’,则第 i 次是顺时针传递的
如果 c_i = ‘1’,则第 i 次是逆时针传递的
如果 c_i = ‘?’,则第 i 次是忘记了传递方向的,可以是顺时针或逆时针

输出

在第 1 行输出游戏结束之后,球可能在哪些小朋友手中的数量 k
在下一行中,输出 k 个数字,可能在哪些小朋友手中的具体小朋友编号。(升序输出)

样例输入 复制

6 3 2
2 ?
2 ?
2 ?

样例输出 复制

3
2 4 6

提示

样例 1: 三次都是顺时针,最终球到编号 2;顺时针、逆时针、顺时针,最终球到编号 4;顺时针、逆时针、逆时针,最终球到编号 6。能求得,最终球只能在这几个编号的小朋友手中。
样例 2:

输入:
10 7 4
2 ?
9 1
4 ?
7 0
2 0
8 1
5 ?
输出:
4
3 5 7 9
样例2按照每一轮进行模拟即可,最终球只能在编号为 2 的小朋友手中。


数据范围:
对于全部数据 1<= n,  m<=10^4,1<= r_i<= n-1,1<= x<= n。

测试点

n,m \leq

特殊性质

1\sim 4

100

c_i 不为 ‘?’,即每轮传递方向确定

5\sim 10

500

c_i 为 ‘?’ 的个数不大于20

11\sim 15

2*10^3

16\sim 20

10^4

来源/分类