#CF2234G. 条带、棋子与两名玩家 / Stripe, Token and Two Players
条带、棋子与两名玩家 / Stripe, Token and Two Players
题目描述
有一条由 个格子组成的条带,编号从 到 。初始时,一个力量为 的棋子位于第 格,第 格上分别写着数字 。
两名玩家进行游戏。每一步,当前玩家依次执行以下操作:
- 假设棋子位于第 格。
- 玩家可以将棋子的力量增加 到 (含)之间的任意整数。
- 然后玩家将棋子向前移动不超过棋子力量的任意正整数格,且移动后棋子不能超出条带范围。
在某位玩家移动后棋子到达第 格时,该玩家获胜。
在双方都采取最优策略的情况下,谁会获胜?
输入格式
每个测试包含多组测试用例。第一行包含测试用例数 ()。接下来是各测试用例的描述。
每个测试用例的第一行包含一个整数 ()——写下的数字个数。
第二行包含 个整数 ()——写在格子上的数字。
保证所有测试用例的 之和不超过 。
输出格式
对于每个测试用例,输出一个整数 或 ——在最优策略下获胜的玩家编号。(玩家 先手。)
4
3
0 0 0
3
1 1 2
5
0 0 1 0 0
9
0 1 2 0 0 1 0 0 0
1
2
1
2
提示
在第一个测试用例中,棋子的力量在整个游戏中始终为 ,因此每步只能向前移动一格。总共进行 步,最后一步由玩家 执行,因此玩家 必胜。
在第二个测试用例中,玩家 有必胜策略:在第一步中尽可能增加棋子的力量,然后跳到第 格获胜。这总是可行的,因为在该步开始时棋子位于第 或第 格,其力量至少可以增加到 。