Universal Cup Judging System

Universal Cup

時間限制: 1.0 s 記憶體限制: 256 MB 總分: 100 可 Hack ✓
统计

problem_15427_1.png

På ett schackbräde med $10$ rader och $9$ kolumner spelas ett spel som heter "Qi Men Xiang Qi". Varje sida har flera pjäser, och olika pjäser har olika egenskaper. Vi använder koordinaterna $(x, y)$ för att representera positionen på den $x$-te raden och den $y$-te kolumnen på schackbrädet.

Vår sida har flera Torn (Rooks) och flera Springare (Knights), samt färdigheten Skepnadsskifte (Shape-shifting). Rörelsemetoderna för dessa två typer av pjäser och färdigheten beskrivs enligt följande:

  • Antag att Tornet befinner sig på koordinaterna $(a, b)$. Om det flyttar till koordinaterna $(c, d)$ på schackbrädet i en handling måste följande villkor vara uppfyllda:
    • Det finns inga egna pjäser på $(c, d)$. Det vill säga, det kan inte slå egna pjäser och inte heller överlappa med egna pjäser.
    • $c = a$ eller $d = b$, men $(a, b) \neq (c, d)$. Det vill säga, det kan röra sig längs raden eller kolumnen det befinner sig i, men kan inte stå kvar på samma position.
    • Det får inte finnas några andra pjäser mellan $(a, b)$ och $(c, d)$. Det vill säga, det kan inte hoppa över andra pjäser under förflyttningen.
  • Antag att Springaren befinner sig på koordinaterna $(a, b)$. Om den flyttar till koordinaterna $(c, d)$ på schackbrädet i en handling måste följande villkor vara uppfyllda:
    • Det finns inga egna pjäser på $(c, d)$. Det vill säga, den kan inte slå egna pjäser och inte heller överlappa med egna pjäser.
    • $\{|a - c|, |b - d|\} = \{1, 2\}$. Här betecknar $\{\dots\}$ en oordnad mängd. Detta motsvarar den traditionella schackrörelsen i form av ett "L" (observera att det inte finns någon blockering av springaren i detta problem).
  • Skepnadsskifte: Detta kan användas som en handling för att byta position på två godtyckliga egna pjäser. Det finns ingen gräns för antalet användningar.

Fienden har flera Slem (Slimes). Slem kan inte röra sig men har följande egenskaper:

  • Antag att Slemmet befinner sig på koordinaterna $(a, b)$. När det slås och tas bort kommer det omedelbart att dela sig och generera ett Slem på var och en av de fyra intilliggande positionerna (upp, ner, vänster, höger). Specifikt kommer inga nya slem att genereras på de av dessa fyra intilliggande positioner som redan har andra pjäser eller ligger utanför schackbrädet.
  • De Slem som genereras genom delning har samma delningsegenskaper och det finns ingen gräns för antalet delningar.

Efter att pjäserna har flyttats, om de överlappar med fiendepjäser, utlöses ett slag som tar bort fiendepjäserna. Spelets vinstvillkor är att slå alla fiendens Slem och se till att det inte finns några fiendepjäser kvar på schackbrädet.

Medan Xiao Biao spelade spelet upptäckte han att även om fienden inte kan flytta sina pjäser är det fortfarande svårt för vår sida att rent slå ut alla Slem, eftersom de är många och delar sig mycket effektivt, vilket ofta leder till att ännu fler slem genereras och gör det svårt för Xiao Biao att avgöra om det går att vinna i detta spel. Han har vänt sig till dig, som är skicklig på strategi och analys, i hopp om att du kan hjälpa honom att avgöra om det finns en strategi för att nå seger inom $10^4$ drag. Om en sådan vinnande strategi finns, skriv ut operationerna för varje steg.

Indata

Indatan består av $10$ rader, som var och en innehåller en sträng av längd $9$ som representerar situationen på schackbrädet. Tecknet . representerar en tom position; tecknet C representerar vårt Torn; tecknet M representerar vår Springare; och tecknet S representerar fiendens Slem.

Varje typ av tecken kan förekomma flera gånger. Datan garanterar att det finns minst ett Slem på schackbrädet och minst en egen pjäs.

Utdata

Om det inte finns någon strategi för att vinna inom $10^4$ drag:

  • Skriv ut en enda rad med strängen WuJie.

Om det finns en strategi för att vinna inom $10^4$ drag:

  • Skriv först ut en enda rad med strängen YouJie.
  • Skriv därefter ut ett heltal $s$, som representerar antalet handlingar.
  • Skriv sedan ut $s$ rader, som var och en innehåller fyra heltal $a, b, c, d$, vilket anger att den egna pjäsen som för närvarande befinner sig på $(a, b)$ flyttas till position $(c, d)$. Specifikt, om båda positionerna $(a, b)$ och $(c, d)$ redan har egna pjäser, betraktas denna handling som Skepnadsskifte, vilket anger att dessa två pjäser byter plats.
  • Din strategi måste säkerställa att det efter att alla handlingar har slutförts inte finns några Slem kvar på schackbrädet.

Om det finns flera olika giltiga lösningar kan vilken som helst av dem skrivas ut.

Lösningar som inte uppfyller formatkraven, inte följer pjäsernas rörelseregler eller anger en position $(a, b)$ där det inte finns någon pjäs kommer att betraktas som felaktiga.

Exempel

Indata 1

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

Utdata 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

Indata 2

SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSCSSSS

Utdata 2

WuJie

Notering

Utdatan för exempel $1$ visar flera giltiga operationer och slår till slut alla slem.

  • Steg $1$ till $3$ visar hur Tornet på $(1, 4)$ rör sig åt vänster, väljer att flytta en ruta i taget och slutligen landar på $(1, 1)$.
  • Steg $4$ visar operationen Skepnadsskifte, som byter plats på Tornet på $(1, 1)$ och Tornet på $(2, 4)$.
  • Steg $5$ visar hur Tornet på $(2, 4)$ flyttar upp till $(1, 4)$.
  • Det sista steget visar hur Springaren hoppar från $(2, 7)$ till $(1, 5)$ för att slå det enda Slemmet. Eftersom det inte finns några giltiga tomma positioner intill Slemmet efter detta kan det inte dela sig. Spelet är vunnet.

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.