Universal Cup Judging System

Universal Cup

حد الوقت: 1.0 s حد الذاكرة: 256 MB مجموع النقاط: 100 قابلة للهجوم ✓
الإحصائيات

problem_15427_1.png

$10$ rivin ja $9$ sarakkeen kokoisella shakkilaudalla pelataan peliä nimeltä ”Qi Men Xiang Qi”. Kummallakin osapuolella on useita nappuloita, ja eri nappuloilla on erilaisia ominaisuuksia. Käytämme koordinaatteja $(x, y)$ esittämään sijaintia shakkilaudan $x$-nnellä rivillä ja $y$-nnessä sarakkeessa.

Meidän puolellamme on useita Torneja (Rooks) ja useita Ratsuja (Knights) sekä taito Muodonmuutos (Shape-shifting). Näiden kahden nappulatyypin liikkumistavat ja taito on kuvattu seuraavasti:

  • Oletetaan, että Torni sijaitsee koordinaateissa $(a, b)$. Jos se siirtyy yhdellä toiminnolla shakkilaudan koordinaatteihin $(c, d)$, seuraavien ehtojen on täytyttävä:
    • Koordinaateissa $(c, d)$ ei ole omia nappuloita. Toisin sanoen se ei voi lyödä omia nappuloita eikä mennä päällekkäin omien nappuloiden kanssa.
    • $c = a$ tai $d = b$, mutta $(a, b) \neq (c, d)$. Toisin sanoen se voi liikkua sitä riviä tai saraketta pitkin, jolla se on, mutta ei voi jäädä paikalleen.
    • Koordinaattien $(a, b)$ ja $(c, d)$ välissä ei saa olla mitään muita nappuloita. Toisin sanoen se ei voi hypätä muiden nappuloiden yli liikkuessaan.
  • Oletetaan, että Ratsu sijaitsee koordinaateissa $(a, b)$. Jos se siirtyy yhdellä toiminnolla shakkilaudan koordinaatteihin $(c, d)$, seuraavien ehtojen on täytyttävä:
    • Koordinaateissa $(c, d)$ ei ole omia nappuloita. Toisin sanoen se ei voi lyödä omia nappuloita eikä mennä päällekkäin omien nappuloiden kanssa.
    • $\{|a - c|, |b - d|\} = \{1, 2\}$. Tässä $\{\dots\}$ tarkoittaa järjestämätöntä joukkoa. Tämä vastaa perinteisen shakin ”L”-kirjaimen muotoista siirtoa (huomaa, että tässä tehtävässä ratsun kulkua ei voi tukkia).
  • Muodonmuutos: Tätä voidaan käyttää yhtenä toimintona minkä tahansa kahden oman nappulan paikkojen vaihtamiseen keskenään. Käyttökertojen määrää ei ole rajoitettu.

Vihollisella on useita Limoja (Slimes). Limat eivät voi liikkua, mutta niillä on seuraavat ominaisuudet:

  • Oletetaan, että Lima sijaitsee koordinaateissa $(a, b)$. Kun se lyödään ja poistetaan laudalta, se jakautuu välittömästi luoden yhden Liman kuhunkin neljästä viereisestä ruudusta (ylös, alas, vasemmalle, oikealle). Tarkemmin sanottuna näihin neljään viereiseen ruutuun ei synny uusia limoja ruutuihin, joissa on jo jokin muu nappula tai jotka ovat shakkilaudan ulkopuolella.
  • Jakautumisen kautta syntyneillä Limoilla on samat jakautumisominaisuudet, eikä jakautumisten määrää ole rajoitettu.

Kun nappuloita on siirretty ja ne menevät päällekkäin vihollisnappuloiden kanssa, tapahtuu lyönti, joka poistaa vihollisnappulat. Pelin voittoehdot täyttyvät, kun kaikki vihollisen Limat on lyöty eikä shakkilaudalla ole enää yhtään vihollisnappulaa.

Pelatessaan peliä Xiao Biao huomasi, että vaikka vihollinen ei voi liikuttaa nappuloitaan, meidän puolemme on silti vaikea lyödä kaikkia Limoja puhtaasti, sillä niitä on paljon ja ne jakautuvat erittäin tehokkaasti, mikä usein johtaa vain entistä useampien limojen syntymiseen ja tekee Xiao Biaolle vaikeaksi päätellä, onko voitto tässä pelissä mahdollinen. Hän on kääntynyt sinun puoleesi, koska olet taitava strategiassa ja analysoinnissa, ja toivoo sinun auttavan häntä selvittämään, onko olemassa strategiaa voiton saavuttamiseksi korkeintaan $10^4$ siirrossa. Jos tällainen voittostrategia on olemassa, tulosta kunkin vaiheen toiminnot.

Syöte

Syöte koostuu $10$ rivistä, joista jokainen sisältää pituutta $9$ olevan merkkijonon, joka kuvaa shakkilaudan tilannetta. Merkki . kuvaa tyhjää ruutua; merkki C kuvaa meidän Torniamme; merkki M kuvaa meidän Ratsuamme; ja merkki S kuvaa vihollisen Limaa.

Kutakin merkkiä voi esiintyä useita kertoja. Syöte takaa, että shakkilaudalla on vähintään yksi Lima ja vähintään yksi oma nappula.

Tuloste

Jos ei ole olemassa strategiaa, jolla voisi voittaa korkeintaan $10^4$ siirrossa:

  • Tulosta yhdelle riville merkkijono WuJie.

Jos on olemassa strategia, jolla voi voittaa korkeintaan $10^4$ siirrossa:

  • Tulosta ensin yhdelle riville merkkijono YouJie.
  • Tulosta seuraavaksi kokonaisluku $s$, joka kuvaa toimintojen lukumäärää.
  • Tulosta sitten $s$ riviä, joista jokainen sisältää neljä kokonaislukua $a, b, c, d$, mikä ilmaisee, että tällä hetkellä ruudussa $(a, b)$ oleva oma nappula siirretään ruutuun $(c, d)$. Erityisesti, jos molemmissa ruuduissa $(a, b)$ ja $(c, d)$ on jo oma nappula, tämä toiminto katsotaan Muodonmuutokseksi, mikä tarkoittaa, että nämä kaksi nappulaa vaihtavat paikkoja.
  • Strategiasi on varmistettava, että kaikkien toimintojen jälkeen shakkilaudalla ei ole yhtään Limaa jäljellä.

Jos kelvollisia ratkaisuja on useita, voit tulostaa niistä minkä tahansa.

Ratkaisut, jotka eivät täytä muotovaatimuksia, eivät noudata nappuloiden liikkumissääntöjä tai osoittavat ruutuun $(a, b)$, jossa ei ole nappulaa, katsotaan virheellisiksi.

Esimerkit

Syöte 1

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

Tuloste 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

Syöte 2

SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSSSSSS
SSSSCSSSS

Tuloste 2

WuJie

Huomautus

Esimerkin $1$ tuloste esittelee useita kelvollisia toimintoja ja lyö lopulta kaikki limat.

  • Vaiheet $1$–$3$ näyttävät ruudussa $(1, 4)$ olevan Tornin liikkuvan vasemmalle ruutu kerrallaan ja päätyvän lopulta ruutuun $(1, 1)$.
  • Vaihe $4$ esittelee Muodonmuutos-toiminnon, joka vaihtaa ruudussa $(1, 1)$ olevan Tornin ja ruudussa $(2, 4)$ olevan Tornin paikat.
  • Vaihe $5$ näyttää ruudussa $(2, 4)$ olevan Tornin liikkuvan ylös ruutuun $(1, 4)$.
  • Viimeinen vaihe näyttää Ratsun hyppäävän ruudusta $(2, 7)$ ruutuun $(1, 5)$ lyödäkseen ainoan Liman. Koska Liman vieressä ei tämän jälkeen ole kelvollisia tyhjiä ruutuja, se ei voi jakautua. Peli on voitettu.

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.