Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2019-02-20 21:38:00.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:petrick.in, petrick.outSursăAGM 2019, runda nationala
AutorPatrick SavaAdăugată dextreme77Patrick Sava xtreme77
Timp execuţie pe test0.005 secLimită de memorie256000 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Petrick

Această problemă este numită Petrick - şi acest lucru nu trebuie confundat cu numele autorului. Petrick se referă la "trick", un sinonim pentru frazele româneşti "pe smecherie" sau "pe barosaneala". Trick-ul real se referă la a vedea dacă tu, un uimitor jucător de şah, poţi câştiga împotriva adversarului într-o singură mişcare (aminteste-ti că esti un talentat!).

În mod formal, ti se dă o tabla de şah fără pioni, cu N piese pe ea şi ti se cere să vezi dacă albul ii poate da sah-mat negrului prin mutarea unei singure piese. Reţine că starea tablei de şah poate fi generata într-un joc ipotetic de şah, în conformitate cu regulile bine cunoscute ale şahului.

Urmeaza o scurtă descriere a jocului de şah. Şahul este un joc jucat pe o tablă pătrată de 8 x 8, cu diferite piese. Piesele sunt regi, regine, nebuni, cai, sau ture. Fiecare piesă poate fi neagra sau alba, iar fiecare piesă se poate afla pe o singură celulă. Nu poate fi mai mult de o piesa intr-o celulă. Fiecare piesă poate, în funcţie de tipul său, să se deplaseze la alte celule; în special:

  1. Regele se poate muta în orice celulă adiacenta (verticala, orizontala sau diagonala).
  2. Tura poate să se deplaseze ortogonal în sus, în jos, în stânga sau în dreapta pe oricare distanţă, atâta timp cât nu "sare peste" alte piese.
  3. Nebunul poate muta în diagonală pe orice distanţă, atâta timp cât nu "sare peste" alte piese.
  4. Regina poate realiza orice mutare pe care un nebun sau o tura o pot face.
  5. Calul se poate muta ortogonal în sus, în jos, în stânga sau în dreapta cu două celule, urmată imediat de o mişcare suplimentară a unei celule perpendiculare pe prima (în forma literei mari L); calul poate "sări peste" alte piese.

Există tocmai un rege al fiecărei culori.
Există cel mult două ture, nebuni şi cai de fiecare culoare.
Dacă există doi nebuni de aceeaşi culoare, atunci se garantează ca suma paritatilor pozitiilor celulelor pe care acestia sunt situati este diferita.
O piesă nu se poate muta într-o celulă care conţine o piesa de aceeaşi culoare. Dacă o piesă se mişcă într-o celulă unde se afla o piesa de culoarea opusă, atunci piesa care se afla pe celula iniţiala este scoasă din joc.
Spunem că o culoare este în check (adica sah) dacă şi numai dacă o piesa de culoarea opusă s-ar putea muta în celula care conţine regele acelei culori. Nu este permis ca o piesa sa faca o mutare invalida.
Spunem că o culoare este în check-mate (sah-mat) dacă şi numai dacă este in check (sah) şi nu poate face mişcări valide.

Acum, este necesar să descoperi dacă albul poate face o mişcare valida care pune negrul în check-mate.

Date de intrare

Fişierul de intrare petrick.in va conţine N, numărul de piese. Următoarele N linii vor conţine fiecare câte un şir din setul {king, rook, queen, bishop, knight}, un şir din setul \ texttt {\ {negru, alb \}} şi două numere întregi din textul {\ {1, 2, 3, 4, 5, 6, 7, 8}}, care indică poziţia piesei pe masă. Primul şir indică tipul piesei, în timp ce al doilea indică care dintre jucătorii deţine piesa.

Date de ieşire

Fişierul de ieşire petrick.out trebuie să conţină un şir care descrie dacă veţi câştiga în următoarea mişcare sau nu. Acest şir va fi \ texttt {Checkmate!} Dacă veţi câştiga în următoarea mişcare sau \ texttt {Bad Luck!} Altfel.

Restricţii

  • 1N16

Exemplu

petrick.inpetrick.out
4
king white 1 1
rook white 7 6
queen white 4 5
king black 8 8
Checkmate!

Explicaţie

Exista cel putin o mutare care ii permite albului sa ii dea sah-mat negrului.

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?