Pentru proiectul final, la sfârşitul clasei a VII-a, Vivi a pregătit jocul „patru în linie”. Şi-a creat o tablă de joc cu de coloane, pe care le-a codificat cu literele alfabetului englez: A
, B
, C
, , Z
, şi un număr de de linii. El a presupus existenţa a doi jucători, unul având numai jetoane negre (notate cu B
- „Black”), iar celălalt numai jetoane roşii (notate cu R
- „Red”). Începe jucătorul care are jetoane roşii. O mutare presupune plasarea unui jeton într-o coloană a tablei, jetonul coborând pe coloană până la prima poziţie neocupată. Mutările sunt date printr-un şir compact de litere mari ale alfabetului englez. De exemplu, şirul ABAC
are semnificaţia:
- Primul jucător pune jetonul (roşu) pe coloana
A
; acesta coboară până la baza coloaneiA
- Al doilea jucător pune jetonul (negru) pe coloana
B
; acesta coboară până la baza coloaneiB
- Roşu urmează şi pune jetonul pe coloana
A
; acesta coboară până deasupra jetonului plasat anterior - Urmează negru şi pune jetonul pe coloana
C
; acesta coboară până la baza coloaneiC
Va câştiga acel jucător care reuşeşte primul să realizeze cel puţin patru jetoane alăturate de aceeaşi culoare pe o linie, coloană sau diagonale. În acel moment jocul se termină.
Exemplu: considerăm acea parte a tablei codificată de la A
la G
, jetonul roşu (R
) reprezentat prin şi jetonul negru (B
) prin următoarele trei figuri pot reprezenta configuraţii pe tabla de joc la care se poate ajunge printr-o secvenţă oarecare de mutări.
Cerinţă
Scrieţi un program care, citind secvenţa de mutări, va stabili care este jucătorul câştigător, în caz că acesta există. Se va afişa R
dacă jucătorul câştigător este cel cu jetoane roşii şi B
dacă jucătorul câştigător este cel cu jetoane negre.
Partida poate să nu aibă câştigător din două motive:
- şirul de caractere reprezentând mutările nu conduce la un câştigător: se va afişa
N
(Nedecis); - şirul de caractere are dimensiunea mai mare decât permite tabla de joc, iar până la final nu a câştigat nici unul dintre jucători, caz în care se va afişa
O
(Out).
Date de intrare
O partidă constă din patru jocuri. Pe primele patru linii ale fişierului de intrare plinie.in
, se află câte o secvenţă de mutări formată din litere mari ale alfabetului englez, fiecare linie corespunzând unui joc. Între litere nu există separatori.
Date de ieşire
Fişierul de ieşire plinie.out
va conţine patru linii. Pe fiecare dintre ele se găseşte câte un caracter reprezentând rezultatul jocului descris pe linia corespunzătoare din fişierul de intrare. Caracterele pot fi :
R
- câştigă jucătorul cu jetoane roşii;B
- câştigă jucătorul cu jetoane negre;N
- şirul de caractere nu conduce la un câştigător, joc nedecis;O
- tabla de joc s-a umplut înaintea terminării şirului de mutări, fără ca vreun jucător să realizeze patru în linie, coloană sau diagonale.
Restricții și precizări
- Tabla de joc are linii şi coloane.
- Şirul de caractere pe baza căruia se realizează mutările are cel mult caractere.
- Un joc se poate termina înainte de efectuarea tuturor mutărilor date.
Exemplu
plinie.in
DEDEAABCCBFGDE
DEDEAABCCBFGDEE
ABACADGE
ABC
plinie.out
N
R
B
N
Explicație
Vezi figura
Vezi figura
Vezi figura