[CEOI2021] Stones
题目背景
译自 CEOI2021 Day2 T1. [Stones](https://hsin.hr/ceoi/competition/ceoi2021_day2_tasks.pdf)。
题目描述
Ankica 终于抓住 Branko,但他拒绝给 Ankica 买报纸并且要求自己提出一个新的游戏因为上一个是不公平的。Ankica 故作天真地提出了另一个石子游戏,但 Branko 内心存疑,并决定完全改变它的规则。
游戏包含 $N$ 堆石子,其中第 $i$ 堆有 $a_i$ 个石子,玩家轮流移除一堆石子中的若干个,取到最后一个石子的玩家获胜。
但在该游戏中每个玩家从哪堆石子中取石子是由另一名玩家固定的。
具体来说,游戏的回合数从 $1$ 开始每次递增,增量为 $1$,而游戏将会以如下方式进行:
- 在奇数回合,Branko 将指定一个非空石子堆。Ankica 将移除这堆石子至少一个,至多所有石子。
- 在偶数回合,Ankica 将指定一个非空石子堆。Branko 将移除这堆石子至少一个,至多所有石子。
作为专业的游戏玩家,在 Branko 摆完石子后,Ankica 很快意识到这个游戏对她有必胜策略。
如果你是 Ankica,你能否获胜呢?
#### 交互方式
这是一道交互题,你的程序必须与官方给出的扮演 Branko 的程序交换信息。当然,你的程序应该扮演 Ankica 的角色并确保她能获胜。
你的程序应先从标准输入读入游戏的初始状态。初始状态有两行,第一行包含一个整数 $N$ ,第二行包含 $N$ 个空格隔开的整数,其中第 $i$ 个表示 $a_i$,含义如题面所示。
你的程序应根据现在是奇数或偶数轮给出不同的输出,具体地:
**在奇数轮:**
- 你的程序应先读入一个整数 $k$。如果此时所有的石子堆都是空的,$k=-1$,你应结束程序因为你已经输了。否则 $k\in[1,N]$ ,代表你现在必须从第 $k$ 堆石子取走至少一个至多所有石子。保证第 $k$ 堆石子此时不为空。令当前第 $k$ 堆石子有 $s_k$ 个石子。
- 你的程序应输出一行一个 $[1,s_k]$ 中的整数,代表你从第 $k$ 堆石子希望取走的石子个数,**然后刷新缓冲区**。
**在偶数轮:**
- 你的程序应先输出一个整数 $k$,**然后刷新缓冲区**。如果此时所有的石子堆都是空的,$k$ 应为 $-1$,你应结束程序因为你已经赢了。否则 $k\in[1,N]$,代表你希望 Branko 从第 $k$ 堆石子取石子。你应保证第 $k$ 堆石子此时不为空。令当前第 $k$ 堆石子有 $s_k$ 个石子。
- 你的程序应读入一行一个 $[1,s_k]$ 中的整数,代表 Branko 从第 $k$ 堆石子取走的石子个数。
保证给出的初始状态使得无论 Branko 怎么操作你都有必胜策略。
#### 交互样例1
| 输出 | 输入 | 解释 |
| :---------: | :----------: | :-----------------------------------: |
| | $\texttt{1}$ | 游戏只有一堆石子 |
| | $\texttt{4}$ | 这一堆石子堆包含 $4$ 个石子 |
| | $\texttt1$ | Branko 只能指定 Ankica 从第一堆取石子 |
| $\texttt4$ | | Ankica 拿走第一堆所有石子 |
| $\texttt-1$ | | 现在没有剩余的石子,Ankica 获胜 |
#### 交互样例2
| 输出 | 输入 | 解释 |
| :-----------: | :--------------: | :-------------------------------: |
| | $\texttt{3}$ | 游戏有三堆石子 |
| | $\texttt{1 1 5}$ | 三堆石子依次包含 $1,1,5$ 个石子 |
| | $\texttt{3}$ | Branko 指定 Ankica 从第三堆取石子 |
| $\texttt{5}$ | | Ankica 拿走第三堆所有石子 |
| $\texttt{1}$ | | Ankica 指定 Branko 从第一堆取石子 |
| | $\texttt{1}$ | Branko 只能拿走第一堆所有石子 |
| | $\texttt{2}$ | Branko 指定 Ankica 从第二堆取石子 |
| $\texttt{1}$ | | Ankica 拿走第二堆所有石子 |
| $\texttt{-1}$ | | 现在没有剩余的石子,Ankica 获胜 |
输入输出格式
输入格式
输出格式
输入输出样例
暂无测试点说明
#### 子任务
令 $M=\max\{a_1,a_2,\dots,a_N\}$。
所有测试点均满足 $1\leq N,M\leq 500$。
各子任务的约束条件如下:
| 子任务 | 分值 | 约束 |
| :----: | :--: | :---------------------------------------------------: |
| $1$ | $12$ | $1\leq N,M\leq 7$ |
| $2$ | $13$ | $1\leq N\leq 12$,$1\leq M\leq 500$ |
| $3$ | $15$ | $1\leq N,M\leq 500$,且 $\forall i,j\in[1,N],a_i=a_j$ |
| $4$ | $60$ | $1\leq N,M\leq 500$ |