AT_ijpc2015_g IOI
题目描述
すぬけ君将作为团长,带领 $h-1$ 名选手参加 IOI(International Olympiad in Inverting)。
在 IOI 中,团长和选手们需要协作解决一个纵向 $h$ 行、横向 $w$ 列的反转谜题。具体来说,团长和选手共 $h$ 人,每人负责一行,只能按下自己负责行的格子。
眼看 IOI 比赛就在明天,すぬけ君却因急事不得不回国。幸运的是,まぬけ君也随队同行,可以代替すぬけ君参加比赛,但由于まぬけ君很“まぬけ”,他不会解反转谜题。
因此,すぬけ君决定制作一台机器,只要输入反转谜题的初始状态和团长负责的行号,就能输出まぬけ君应按下的格子的列号列表。
反转谜题的规则如下:给定一个由黑白两色组成的棋盘,每人可以选择自己负责行的格子,每次按下一个格子时,该格子及其与之边相邻的格子的颜色都会反转。目标是通过若干次操作,使所有格子最终变为白色。
输入格式
输入通过标准输入给出,格式如下:
> $w$ $h$ $r$ $a$ $x_1$ $b_1$ $y_{1,1}$ $y_{1,2}$ ... $y_{1,b_1}$ ... ... $x_a$ $b_a$ $y_{a,1}$ $y_{a,2}$ ... $y_{a,b_a}$
第一行输入中,$w, h$ 分别表示棋盘的列数和行数,$r$ 表示团长负责的行号。
从第二行开始,棋盘的初始状态以如下方式给出:对于 $1 \leq i \leq a, 1 \leq j \leq b_i$,格子 $(x_i, y_{i,j})$ 为黑色,其余格子为白色。
- $1 \leq w \leq 60$
- $1 \leq h \leq 1000000000000000000\ (=10^{18})$
- $1 \leq r \leq h$
- $1 \leq a \leq 100$
- 对于 $1 \leq i \leq a$:
- $1 \leq x_i \leq h$
- $1 \leq b_i \leq w$
- $1 \leq y_{i,1}$
- $x_i \neq x_j\ (i \neq j)$
部分分约束:
- subtask1 (10 分):$w, h \leq 10$
- subtask2 (25 分):$h \leq 10000$
- subtask3 (10 分):$h \leq 1000000$
- subtask4 (25 分):$a \leq 10$
- subtask5 (15 分):$a \leq 50$
- subtask6 (15 分):无额外约束
输出格式
请输出まぬけ君应按下的格子的列号列表,按升序排列,空格分隔。
说明/提示
### 样例解释 3
#### 输入例 4
```
10 10 5 3
3 2 5 7
5 4 1 4 6 9
6 1 10
```
#### 输出例 4
```
2 4 5 6 10
```
由 ChatGPT 4.1 翻译