Universal Cup Judging System

Universal Cup

Límite de tiempo: 1.0 s Límite de memoria: 256 MB Puntuación total: 100 Hackeable ✓
Estadísticas

problem_15427_1.png

Su una scacchiera di $10$ righe per $9$ colonne si sta giocando una partita chiamata "Qi Men Xiang Qi". Ogni schieramento possiede diversi pezzi, e pezzi diversi hanno caratteristiche diverse. Usiamo le coordinate $(x, y)$ per rappresentare la posizione nella $x$-esima riga e nella $y$-esima colonna della scacchiera.

Il nostro schieramento possiede diverse Torri (Rooks) e diversi Cavalli (Knights), oltre all'abilità Mutamento di forma (Shape-shifting). Le modalità di movimento di questi due tipi di pezzi e l'abilità sono descritte come segue:

  • Supponiamo che la Torre si trovi alle coordinate $(a, b)$. Se si sposta alle coordinate $(c, d)$ sulla scacchiera in una sola azione, devono essere soddisfatte le seguenti condizioni:
    • Non ci sono pezzi alleati in $(c, d)$. Ciò significa che non può catturare pezzi alleati, né sovrapporsi a pezzi alleati.
    • $c = a$ oppure $d = b$, ma $(a, b) \neq (c, d)$. Ciò significa che può muoversi lungo la riga o la colonna in cui si trova, ma non può rimanere nella stessa posizione.
    • Non può esserci alcun altro pezzo tra $(a, b)$ e $(c, d)$. Ciò significa che non può saltare oltre altri pezzi durante il movimento.
  • Supponiamo che il Cavallo si trovi alle coordinate $(a, b)$. Se si sposta alle coordinate $(c, d)$ sulla scacchiera in una sola azione, devono essere soddisfatte le seguenti condizioni:
    • Non ci sono pezzi alleati in $(c, d)$. Ciò significa che non può catturare pezzi alleati, né sovrapporsi a pezzi alleati.
    • $\{|a - c|, |b - d|\} = \{1, 2\}$. Qui $\{\dots\}$ indica un insieme non ordinato. Ciò corrisponde al movimento tradizionale degli scacchi a forma di "L" (nota che in questo problema non esiste l'ostruzione della gamba del cavallo).
  • Mutamento di forma: Può essere utilizzato come un'azione per scambiare le posizioni di due pezzi alleati qualsiasi. Non c'è limite al numero di utilizzi.

Il nemico possiede diversi Slime. Gli Slime non possono muoversi ma hanno le seguenti caratteristiche:

  • Supponiamo che lo Slime si trovi alle coordinate $(a, b)$. Quando viene catturato e rimosso, si divide immediatamente, generando uno Slime in ciascuna delle quattro posizioni adiacenti (su, giù, sinistra, destra). Nello specifico, in queste quattro posizioni adiacenti, non verranno generati nuovi slime nelle posizioni che contengono già altri pezzi o che si trovano fuori dai limiti della scacchiera.
  • Gli Slime generati dalla divisione hanno le stesse caratteristiche di divisione e non c'è limite al numero di divisioni.

Dopo aver mosso i pezzi, se si sovrappongono a pezzi nemici, si attiva una cattura che rimuove i pezzi nemici. La condizione di vittoria del gioco è catturare tutti gli Slime nemici, assicurandosi che non rimangano pezzi nemici sulla scacchiera.

Giocando, Xiao Biao ha scoperto che, sebbene il nemico non possa muovere i propri pezzi, è comunque difficile per il nostro schieramento catturare in modo pulito gli Slime, poiché sono numerosi e si dividono in modo molto efficiente, portando spesso alla generazione di ancora più slime e rendendo difficile per Xiao Biao determinare se la vittoria sia possibile in questa partita. Si è rivolto a te, che sei abile nella strategia e nell'analisi, sperando che tu possa aiutarlo a determinare se esiste una strategia per ottenere la vittoria entro $10^4$ mosse. Se esiste una tale strategia vincente, stampa le operazioni per ogni passo.

Input

L'input è composto da $10$ righe, ciascuna contenente una stringa di lunghezza $9$, che rappresenta la situazione della scacchiera. Il carattere . rappresenta una posizione vuota; il carattere C rappresenta la nostra Torre; il carattere M rappresenta il nostro Cavallo; e il carattere S rappresenta lo Slime nemico.

Ogni tipo di carattere può apparire più volte. I dati garantiscono che ci sia almeno uno Slime sulla scacchiera e almeno un pezzo alleato.

Output

Se non esiste alcuna strategia per vincere entro $10^4$ mosse:

  • Stampa su una singola riga la stringa WuJie.

Se esiste una strategia per vincere entro $10^4$ mosse:

  • Innanzitutto, stampa su una singola riga la stringa YouJie.
  • Successivamente, stampa un intero $s$, che rappresenta il numero di azioni.
  • Poi stampa $s$ righe, ciascuna contenente quattro interi $a, b, c, d$, a indicare che il pezzo alleato attualmente in $(a, b)$ viene spostato nella posizione $(c, d)$. Nello specifico, se entrambe le posizioni $(a, b)$ e $(c, d)$ contengono già pezzi alleati, questa azione è considerata un Mutamento di forma, indicando che questi due pezzi si scambiano di posizione.
  • La tua strategia deve garantire che, una volta completate tutte le azioni, non rimangano Slime sulla scacchiera.

Se esistono più soluzioni valide diverse, è possibile stamparne una qualsiasi.

Le soluzioni che non soddisfano i requisiti di formato, non rispettano le regole di movimento dei pezzi o indicano che non c'è alcun pezzo nella posizione $(a, b)$ saranno considerate errate.

Esempi

Input 1

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

Output 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

Input 2

SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSCSSSS

Output 2

WuJie

Note

L'output per l'esempio $1$ dimostra diverse operazioni valide e infine cattura tutti gli slime.

  • I passi da $1$ a $3$ mostrano la Torre in $(1, 4)$ che si muove verso sinistra, scegliendo di avanzare di una casella alla volta, per atterrare infine in $(1, 1)$.
  • Il passo $4$ dimostra l'operazione di Mutamento di forma, scambiando la Torre in $(1, 1)$ con la Torre in $(2, 4)$.
  • Il passo $5$ mostra la Torre in $(2, 4)$ che sale in $(1, 4)$.
  • L'ultimo passo mostra il Cavallo che salta da $(2, 7)$ a $(1, 5)$ per catturare l'unico Slime. Poiché dopo questa mossa non ci sono posizioni vuote valide adiacenti allo Slime, esso non può dividersi. La partita è vinta.

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.