#P13943. [EC Final 2019] Game

[EC Final 2019] Game

Description

Alice 和 Bob 正在玩“陆战棋”。他们每个人都有一个由以下 2424 个棋子组成的 排列\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 排列的第一个棋子为 AA,Bob 排列的第一个棋子为 BB,则 AABB 进行对战,规则如下:
    • 如果 AABB 是同类型棋子,或其中一个是炸弹,则两者都被移除。
    • 否则,如果 AABB 是地雷,且另一个是工兵,则地雷被移除,工兵存活。
    • 否则,如果 AABB 是地雷,且另一个的序号大于 1,则地雷存活,另一个被移除。
    • 否则,比较 AABB 的序号,序号较小的被移除。

Bob 事先知道 Alice 的排列,并可以根据此信息决定自己的排列。在 Bob 决定好自己的排列后,Alice 可以交换 Bob 排列中的任意两个棋子。请问 Bob 能否构造出一个排列,使得无论 Alice 交换哪一对棋子,Bob 都能战胜 Alice 的排列?如果可以,请输出任意一个满足条件的排列。

Input Format

第一行包含一个整数 TT,表示测试用例数量(1T1001\le T\le 100)。

接下来的 TT 行,每行包含 2424 个整数,表示 Alice 的排列:

  • 4040 表示司令
  • 3939 表示军长
  • 3838 表示师长
  • 3737 表示旅长
  • 3636 表示团长
  • 3535 表示营长
  • 3434 表示连长
  • 3333 表示排长
  • 3232 表示工兵
  • 3131 表示地雷
  • 3030 表示炸弹

保证所有排列均为随机选取,并且每种棋子的数量与题目描述一致。

Output Format

每个测试用例输出一行。

如果 Bob 无法构造出满足条件的排列,输出 1-1

否则,输出 2424 个整数,表示 Bob 的排列,格式与输入相同。如果有多种方案,输出任意一种。Bob 的排列必须包含题目描述中的全部 2424 个棋子。

4
40 39 38 38 37 37 36 36 35 35 34 34 34 33 33 33 32 32 32 31 31 31 30 30
34 31 36 33 31 39 37 38 35 32 32 35 36 31 34 32 38 40 30 33 30 34 33 37
37 30 40 38 36 38 32 34 36 35 37 32 34 33 31 30 33 31 35 34 33 39 31 32
30 33 32 39 37 38 35 40 34 30 31 37 31 33 31 33 34 32 36 36 35 34 32 38
34 39 35 38 33 34 36 31 37 31 32 37 33 33 35 32 36 38 31 32 30 40 30 34
35 30 32 33 33 38 32 31 35 33 31 37 36 31 39 30 34 32 40 36 34 34 37 38
36 39 34 38 34 32 33 33 30 31 37 33 40 32 34 36 30 32 38 35 31 31 35 37
36 35 34 39 40 33 31 37 31 30 32 38 30 33 33 34 32 34 35 37 36 32 38 31

Hint

由 ChatGPT 4.1 翻译