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$ 个整数,表示最后可能拿到球的人的编号 ------------

说明/提示

#### 样例解释 下面是第一个测试用例的三次传球的示意图。箭头表示可能的传球方向。在传球后可能持有球的玩家被标记为灰色。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1941D/de43c3cc1c4b12f903e5224359bac3a10205e9a9.png) ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1941D/1a47b05e6478f36a49179722556df26c9f84bbc8.png) ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1941D/47036b3bd9ad777cfd4d3801abb62bd85bcbcc75.png) ------------ 对于 $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$。