6649: Rudolf and the Ball Game

内存限制:256 MB 时间限制:2 S
题面:传统 评测方式:文本比较 上传者:
提交:1 通过:1

题目描述


nn 个人站成一个圈,按照顺时针编号依次是 11nn

现在这 nn 个人玩一个传球游戏,第 ii 次传球可以向顺时针方向传给与自己距离为 did_i 的距离,或者向逆时针方向传给与自己距离为 rir_i 的距离。

游戏总共进行了 mm 轮传球,给你初始拿到球的人的编号 xx 和每次传球的方向和距离 rir_i(有可能方向未知),求出最后可能是谁拿到了球,**按编号从小到大**输出。



输入格式

**本题有多组数据**。

第一行一个整数 tt,表示测试用例的数量。

对于每一组测试用例:

第一行三个整数 n,m,xn,m,x

接下来 mm 行包含每次的传球信息:传球的距离 rir_i,以及传球的方向 cic_i

- ci=c_i= '0',则这次传球为顺时针;

- ci=c_i= '1',则这次传球为逆时针;

- ci=c_i= '?',则这次传球方向未知,可以是顺时针也可以是逆时针。

输出格式

对于每一组数据,共两行:

第一行一个整数 kk,表示最后可能拿到球的人的数量。

第二行 kk 个整数,表示最后可能拿到球的人的编号


#### 数据范围
对于 100%100\% 的数据,1t1000,1x n1000,1m1000,1nm2105,1rin11 \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

## 样例 #1

### 样例输入 #1

```
5
6 3 2
2 ?
2 ?
2 ?
12 1 2
3 1
10 7 4
2 ?
9 1
4 ?
7 0
2 0
8 1
5 ?
5 3 1
4 0
4 ?
1 ?
4 1 1
2 ?
```

### 样例输出 #1

```
3
2 4 6 
1
11 
4
3 5 7 9 
3
2 3 5 
1
3
```

## 提示

Below is an illustration of three throws for the first test case. The arrows denote possible throw directions. Players who could have the ball after the throw are highlighted in gray.

 ![](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)

输入样例 复制

5
6 3 2
2 ?
2 ?
2 ?
12 1 2
3 1
10 7 4
2 ?
9 1
4 ?
7 0
2 0
8 1
5 ?
5 3 1
4 0
4 ?
1 ?
4 1 1
2 ?

输出样例 复制

3
2 4 6 
1
11 
4
3 5 7 9 
3
2 3 5 
1
3

数据范围与提示

下面是第一个测试用例的三次传球的示意图。箭头表示可能的传球方向。在传球后可能持有球的玩家被标记为灰色。



分类标签