Mat


Submit solution

Points: 90 (partial)
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
Assembly, Awk, C, C++, Java, Perl, Python

Državno natjecanje 2016. / Osnovna škola (8. razred) - 3. zadatak

Mirko uči svog prijatelja Slavka igrati šah. Trenutno ga uči posebnoj vrsti matiranja protivnikova kralja.

On će Slavku postaviti na ploču jednog kralja, jednog ili nijednog topa, jednog ili nijednog lovca, a sebi samo kralja.

Također, on će Slavku pomoći i reći da ga Slavko može matirati u točno jednom potezu.

Pomozi Slavku pronaći potez kojim on matira Mirkova kralja.

U nastavku slijede neka pravila šaha relevantna za ovaj zadatak:

  • Šahovska ploča sastoji se od 8 redaka i 8 stupaca.

  • Kralj se može pomaknuti na jedno od susjednih polja s kojim njegovo polje dijeli vrh ili stranicu.

  • Top se može pomaknuti na jedno od polja koja se nalaze u istom retku ili stupcu kao njegovo polje.

  • Lovac se može pomaknuti na jedno od polja koja se nalaze u dijagonalnom smjeru od njegova polja.

  • Figura se može pomaknuti na neko polje samo ako se na tom polju i na putu do tog polja ne nalazi nijedna druga figura.

  • Mirkov kralj nalazi se pod šahom ako se neka Slavkova figura može pomaknuti na njegovo polje.

  • Mirkov kralj može pojesti neku figuru (pomičući se na njezino mjesto) ako se ona nalazi na nekom od susjednih polja i samo ako nakon tog poteza kralj neće biti pod šahom.

  • Kažemo da je Mirkov kralj matiran ako se on nalazi pod šahom i Mirko ne može odigrati potez nakon kojega se njegov kralj neće nalaziti pod šahom.

  • Ni Mirko ni Slavko ne smiju svoga kralja pomaknuti na polje koje je susjedno protivnikovu kralju.

  • Mirkov kralj se prije Slavkova poteza ne nalazi u šahu.

ULAZNI PODATCI

U svakom od 8 redaka nalazi se 8 znakova koji predstavljaju stanje ploče kakvu je Mirko zadao Slavku.

Svaki znak može biti jedan od sljedećih:

  • ‘.’ predstavlja prazno polje
  • ‘M’ predstavlja Mirkovog kralja
  • ‘S’ predstavlja Slavkovog kralja
  • ‘T’ predstavlja Slavkovog topa (ako postoji)
  • ‘L’ predstavlja Slavkovog lovca (ako postoji)

Službeni test podaci bit će takvi da Slavko sigurno može odigrati potez kojim matira Mirka.

IZLAZNI PODATCI

Ispiši 8 redaka po 8 znakova koji predstavljaju stanje ploče (u istom formatu kao u ulaznim podacima) nakon što je Slavko odigrao svoj potez.

Ako postoji više mogućih rješenja, ispiši bilo koje.

PRIMJERI TEST PODATAKA

Ulaz
.M......
........
.S...T..
........
........
........
........
........
Izlaz
.M...T..
........
.S......
........
........
........
........
........
Objašnjenje

Opis prvog test podatka: Top se pomaknuo 2 polja gore. Mirkov kralj je matiran jer Slavkov top napada sva polja u prvom retku, a Slavkov kralj sva ostala polja susjedna Mirkovu kralju.

Ulaz
M.......
........
S.......
.L......
........
........
.T......
........
Izlaz
M.......
........
S.L.....
........
........
........
.T......
........
Objašnjenje

Opis drugog test podatka: Lovac se pomaknuo za jedno polje dijagonalno. Mirkov kralj je matiran jer Slavkov top napada sva polja u drugom stupcu, lovac daje šah kralju, a Slavkov kralj napada sva ostala polja susjedna Mirkovu kralju.

Ulaz
.M......
.LT.....
.S......
........
........
........
........
........
Izlaz
.MT.....
.L......
.S......
........
........
........
........
........
Objašnjenje

Opis trećeg test podatka: Top se pomaknuo za jedno polje gore. Mirkov kralj je matiran jer ga napada Slavkov top, a Slavkov lovac i kralj napadaju ostala susjedna polja. Primijetite da Mirkov kralj ne može pojesti Slavkova topa jer bi u tom slučaju bio pod šahom od Slavkova lovca.


Comments

There are no comments at the moment.