CF1941D Rudolf and the Ball Game
题目描述
$n$ 个人站成一个圈,按照顺时针编号依次是 $1$ 到 $n$。
现在这 $n$ 个人玩一个传球游戏,第 $i$ 次传球可以向顺时针方向传给与自己距离为 $d_i$ 的距离,或者向逆时针方向传给与自己距离为 $r_i$ 的距离。
游戏总共进行了 $m$ 轮传球,给你初始拿到球的人的编号 $x$ 和每次传球的方向和距离 $r_i$(有可能方向未知),求出最后可能是谁拿到了球,**按编号从小到大**输出。
------------
输入格式
**本题有多组数据**。
第一行一个整数 $t$,表示测试用例的数量。
对于每一组测试用例:
第一行三个整数 $n,m,x$。
接下来 $m$ 行包含每次的传球信息:传球的距离 $r_i$,以及传球的方向 $c_i$:
- $c_i=$ '0',则这次传球为顺时针;
- $c_i=$ '1',则这次传球为逆时针;
- $c_i=$ '?',则这次传球方向未知,可以是顺时针也可以是逆时针。
------------
输出格式
对于每一组数据,共两行:
第一行一个整数 $k$,表示最后可能拿到球的人的数量。
第二行 $k$ 个整数,表示最后可能拿到球的人的编号
------------
说明/提示
#### 样例解释
下面是第一个测试用例的三次传球的示意图。箭头表示可能的传球方向。在传球后可能持有球的玩家被标记为灰色。



------------
对于 $100\%$ 的数据,$1 \le t \le 1000,1 \le x \le n \le 1000,1 \le m \le 1000,1 \le n\cdot m \le 2\cdot10^5,1 \le r_i \le n-1$。