Universal Cup Judging System

Universal Cup

Time Limit: 1.0 s Memory Limit: 256 MB Total points: 100 Hackable ✓
Statistics

problem_15427_1.png

在一個 $10$ 行 $9$ 列的棋盤上,正在進行一局名為「奇門象棋」的遊戲。雙方各有若干棋子,不同的棋子具有不同的特點。我們使用座標 $(x, y)$ 表示棋盤上第 $x$ 行第 $y$ 列的位置。

我方擁有若干個「車」(Rook)和若干個「馬」(Knight),以及技能「移形換位」(Shape-shifting)。這兩種棋子的移動方式以及該技能的描述如下:

  • 假設「車」位於座標 $(a, b)$。如果它在一步操作中移動到棋盤上的座標 $(c, d)$,必須滿足以下條件:
    • $(c, d)$ 處沒有我方棋子。即它不能吃掉我方棋子,也不能與我方棋子重疊。
    • $c = a$ 或 $d = b$,但 $(a, b) \neq (c, d)$。即它可以沿其所在的行或列移動,但不能停留在原地。
    • $(a, b)$ 和 $(c, d)$ 之間不能有任何其他棋子。即它在移動時不能越過其他棋子。
  • 假設「馬」位於座標 $(a, b)$。如果它在一步操作中移動到棋盤上的座標 $(c, d)$,必須滿足以下條件:
    • $(c, d)$ 處沒有我方棋子。即它不能吃掉我方棋子,也不能與我方棋子重疊。
    • $\{|a - c|, |b - d|\} = \{1, 2\}$。這裡 $\{\dots\}$ 表示無序集合。這對應於傳統象棋中「日」字形(或「L」形)的移動(注意,本題中沒有「蹩馬腳」的規則)。
  • 移形換位:這可以作為一步操作,用來交換任意兩個我方棋子的位置。使用次數沒有限制。

敵方擁有若干個「史萊姆」(Slime)。史萊姆無法移動,但具有以下特點:

  • 假設「史萊姆」位於座標 $(a, b)$。當它被吃掉並移出棋盤時,它會立即分裂,在相鄰的四個位置(上、下、左、右)各生成一個「史萊姆」。具體來說,在這四個相鄰位置中,如果某個位置已經存在任何其他棋子或超出了棋盤邊界,則該位置不會生成新的史萊姆。
  • 分裂生成的「史萊姆」具有相同的分裂特性,且分裂次數沒有限制。

棋子移動後,如果與敵方棋子重疊,則會觸發吃子,將敵方棋子移出棋盤。遊戲的獲勝條件是吃掉所有敵方「史萊姆」,確保棋盤上沒有留下任何敵方棋子。

在玩遊戲時,小標發現雖然敵方無法移動他們的棋子,但我方仍然很難乾淨地消滅所有史萊姆,因為它們數量眾多且分裂效率極高,常常導致生成更多的史萊姆,這讓小標很難判斷這局遊戲是否能夠獲勝。他找到了擅長策略和分析的你,希望你能幫他判斷是否存在一種在 $10^4$ 步內獲得勝利的策略。如果存在這樣的獲勝策略,請輸出每一步的操作。

輸入格式

輸入包含 $10$ 行,每行包含一個長度為 $9$ 的字串,表示棋盤的局勢。其中字元 . 表示空位置;字元 C 表示我方的「車」;字元 M 表示我方的「馬」;字元 S 表示敵方的「史萊姆」。

每種字元可能會出現多次。資料保證棋盤上至少有一個「史萊姆」且至少有一個我方棋子。

輸出格式

如果不存在在 $10^4$ 步內獲勝的策略:

  • 請單行輸出字串 WuJie。

如果存在在 $10^4$ 步內獲勝的策略:

  • 首先,單行輸出字串 YouJie。
  • 接著,輸出一個整數 $s$,表示操作的步數。
  • 然後輸出 $s$ 行,每行包含四個整數 $a, b, c, d$,表示將目前位於 $(a, b)$ 的我方棋子移動到位置 $(c, d)$。特別地,如果 $(a, b)$ 和 $(c, d)$ 處都已經有我方棋子,則該操作被視為「移形換位」,表示這兩個棋子交換位置。
  • 你的策略必須確保在所有操作完成後,棋盤上沒有殘留的「史萊姆」。

如果存在多種不同的可行解,輸出其中任意一種即可。

不符合格式要求、不符合棋子移動規則、或指定位置 $(a, b)$ 處沒有我方棋子的解將被視為錯誤。

範例

輸入 1

...CSC...
...CCCM..
.........
.........
.........
.........
.........
.........
.........
.........

輸出 1

YouJie
6
1 4 1 3
1 3 1 2
1 2 1 1
1 1 2 4
2 4 1 4
2 7 1 5

輸入 2

SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSCSSSS

輸出 2

WuJie

說明

範例 $1$ 的輸出展示了多種可行操作,並最終吃掉了所有史萊姆。

  • 第 $1$ 到 $3$ 步展示了位於 $(1, 4)$ 的「車」向左移動,選擇每次移動一格,最終停在 $(1, 1)$。
  • 第 $4$ 步展示了「移形換位」操作,將位於 $(1, 1)$ 的「車」與位於 $(2, 4)$ 的「車」進行交換。
  • 第 $5$ 步展示了位於 $(2, 4)$ 的「車」向上移動到 $(1, 4)$。
  • 最後一步展示了「馬」從 $(2, 7)$ 跳到 $(1, 5)$ 以吃掉唯一的「史萊姆」。由於在此之後,該「史萊姆」相鄰的位置沒有可用的空位置,因此它無法分裂。遊戲獲勝。

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.