P13943 [EC Final 2019] Game
题目描述
Alice 和 Bob 正在玩“陆战棋”。他们每个人都有一个由以下 $24$ 个棋子组成的 $\textit{排列}$:
- 1 个司令,序号 9
- 1 个军长,序号 8
- 2 个师长,序号 7
- 2 个旅长,序号 6
- 2 个团长,序号 5
- 2 个营长,序号 4
- 3 个连长,序号 3
- 3 个排长,序号 2
- 3 个工兵,序号 1
- 2 个炸弹
- 3 个地雷
为了决定胜负,重复以下过程直到有人获胜或平局:
- 如果两个排列都为空,游戏平局。
- 如果 Alice 的排列为空,Bob 获胜。
- 如果 Bob 的排列为空,Alice 获胜。
- 令 Alice 排列的第一个棋子为 $A$,Bob 排列的第一个棋子为 $B$,则 $A$ 与 $B$ 进行对战,规则如下:
- 如果 $A$ 和 $B$ 是同类型棋子,或其中一个是炸弹,则两者都被移除。
- 否则,如果 $A$ 或 $B$ 是地雷,且另一个是工兵,则地雷被移除,工兵存活。
- 否则,如果 $A$ 或 $B$ 是地雷,且另一个的序号大于 1,则地雷存活,另一个被移除。
- 否则,比较 $A$ 和 $B$ 的序号,序号较小的被移除。
Bob 事先知道 Alice 的排列,并可以根据此信息决定自己的排列。在 Bob 决定好自己的排列后,Alice 可以交换 Bob 排列中的任意两个棋子。请问 Bob 能否构造出一个排列,使得无论 Alice 交换哪一对棋子,Bob 都能战胜 Alice 的排列?如果可以,请输出任意一个满足条件的排列。
输入格式
第一行包含一个整数 $T$,表示测试用例数量($1\le T\le 100$)。
接下来的 $T$ 行,每行包含 $24$ 个整数,表示 Alice 的排列:
- $40$ 表示司令
- $39$ 表示军长
- $38$ 表示师长
- $37$ 表示旅长
- $36$ 表示团长
- $35$ 表示营长
- $34$ 表示连长
- $33$ 表示排长
- $32$ 表示工兵
- $31$ 表示地雷
- $30$ 表示炸弹
保证所有排列均为随机选取,并且每种棋子的数量与题目描述一致。
输出格式
每个测试用例输出一行。
如果 Bob 无法构造出满足条件的排列,输出 $-1$。
否则,输出 $24$ 个整数,表示 Bob 的排列,格式与输入相同。如果有多种方案,输出任意一种。Bob 的排列必须包含题目描述中的全部 $24$ 个棋子。
说明/提示
由 ChatGPT 4.1 翻译