QOJ.ac

QOJ

時間限制: 2 s 記憶體限制: 256 MB 總分: 100

#5043. 遊戲

统计

Alice 和 Bob 正在玩陸戰棋(Luzhanqi)。他們每個人都擁有一組包含以下 24 個棋子的排列:

  • 一個司令,階級 9
  • 一個軍長,階級 8
  • 兩個師長,階級 7
  • 兩個旅長,階級 6
  • 兩個團長,階級 5
  • 兩個營長,階級 4
  • 三個連長,階級 3
  • 三個排長,階級 2
  • 三個工兵,階級 1
  • 兩個炸彈
  • 三個地雷

為了決定勝負,我們重複進行以下過程,直到有人獲勝或遊戲以平手結束:

  • 如果雙方的排列都為空,遊戲以平手結束。
  • 如果 Alice 的排列為空,Bob 獲勝。
  • 如果 Bob 的排列為空,Alice 獲勝。
  • 令 Alice 排列中的第一個棋子為 $A$,Bob 排列中的第一個棋子為 $B$。$A$ 與 $B$ 的戰鬥結果如下:

  • 如果 $A$ 和 $B$ 是相同類型的棋子,或者其中之一是炸彈,則兩者皆被移除。

  • 否則,如果其中之一是地雷且另一個是工兵,則地雷被移除,工兵存活。
  • 否則,如果其中之一是地雷且另一個的階級大於 1,則地雷存活,另一個被移除。
  • 否則,比較 $A$ 和 $B$ 的階級,階級較小的棋子被移除。

Bob 事先知道 Alice 的排列,並可以根據該資訊決定他的排列。在 Bob 決定他的排列後,Alice 可以交換 Bob 排列中的任意兩個棋子。請問 Bob 是否能構造出一種排列,使得無論 Alice 交換哪兩個棋子,他都能贏過 Alice 的排列?

輸入格式

第一行包含一個整數 $T$,表示測試資料的組數 ($1 \le T \le 100$)。 接下來的 $T$ 行,每行包含 24 個整數,表示 Alice 的排列:

  • 40 代表司令
  • 39 代表軍長
  • 38 代表師長
  • 37 代表旅長
  • 36 代表團長
  • 35 代表營長
  • 34 代表連長
  • 33 代表排長
  • 32 代表工兵
  • 31 代表地雷
  • 30 代表炸彈

保證所有排列均為隨機均勻選擇,且恰好包含題目描述的 24 個棋子。

輸出格式

為每組測試資料輸出一行。 如果 Bob 無法構造出符合要求的排列,請輸出 $-1$。 否則,輸出 24 個整數,表示 Bob 的排列,格式與輸入相同。若有多種解,輸出其中任意一種即可。Bob 的排列必須恰好包含題目描述的 24 個棋子。

範例

輸入 1

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

輸出 1

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

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.