Ana şi Bogdan joacă dame. Tabla de joc este o tablă de şah obişnuită, ca în figura de mai jos:
Observaţi că liniile sunt numerotate de la la , iar coloanele sunt etichetate cu literele mici de la la , astfel că fiecare poziţie de pe tablă este identificată prin litera asociată coloanei pe care se află, urmată de numărul liniei. De exemplu, pătratul din stânga-jos este şi este negru; pătratul din dreapta-sus este şi este de asemenea negru. La începutul jocului fiecare jucător are piese (Ana piese albe, Bogdan piese negre). Iniţial piesele albe sunt plasate în poziţiile , , , , , , , , , , , . Piesele negre sunt plasate iniţial în poziţiile , , , , , , , , , , , . Ana şi Bogdan mută alternativ, prima la mutare fiind Ana, deoarece joacă cu piesele albe. Piesele sunt denumite dame.
O damă poate executa două tipuri de mutări:
- mutare simplă: piesa este mutată pe tablă diagonal înainte cu o poziţie, dacă poziţia diagonal următoare este liberă. De exemplu o damă albă aflată în poziţia poate fi mutată în poziţia sau ; o damă neagră aflată în poziţia poate fi mutată în poziţia sau .
- salt: dama sare în diagonală peste o piesă a adversarului şi ajunge pe tablă în poziţia diagonal următoare (dacă aceasta este liberă). Piesa adversarului peste care s-a sărit va fi eliminată de pe tablă. Dacă după efectuarea unui salt piesa respectivă poate efectua un alt salt, în acelaşi mod, va continua salturile. Salturile sunt permise în oricare dintre cele direcţii. De exemplu, să considerăm că avem o damă în poziţia , iar în poziţia este o piesă a adversarului. După salt dama din va ajunge în poziţia (aceasta trebuie să fie liberă), iar piesa din este eliminată de pe tablă.
În timpul jocului, pisica Anei a răsturnat tabla de joc. Din fericire Ana şi Bogdan îşi amintesc mutările.
Cerinţă
Scrieţi un program care să restaureze configuraţia tablei de joc, pe baza şirului de mutări efectuate.
Date de intrare
Fişierul de intrare dame.in
conţine pe prima linie un număr natural reprezentând numărul de mutări efectuate de la începutul partidei. Pe următoarele linii sunt descrise cele mutări, câte o mutare pe o linie. O mutare simplă este descrisă prin specificarea celulei iniţiale şi a celulei finale separate prin caracterul -
(minus). Dacă mutarea nu este corectă (nu respectă regulile din enunţ), va fi ignorată. Un salt este descris prin specificarea celulei iniţiale şi a celulelor prin care trece piesa separate prin caracterul :
. Dacă pe parcursul unui salt se încalcă regula din enunţ, atunci saltul se execută până la prima eroare întâlnită. Chiar dacă o mutare este ignorată, următoarea mutare este efectuată de celălalt jucător.
Date de ieşire
Fişierul de ieşire dame.out
va conţine linii, fiecare linie conţinând exact caractere din mulţimea cu semnificaţia: .
pătrat alb gol, -
pătrat negru gol, a
damă albă, n
damă neagră.
Restricţii
- Liniile din fişierul de intrare au maxim de caractere.
Exemplu
dame.in
4
c3-d4
f6-e5
d4:f6
g7:e5
dame.out
.n.n.n.n
n.n.n.-.
.n.n.-.n
-.-.n.-.
.-.-.-.-
a.-.a.a.
.a.a.a.a
a.a.a.a.