Fişierul intrare/ieşire:joc14.in, joc14.outSursăGrigore Moisil 2010, clasele 7-8
AutorClara IonescuAdăugată desavimSerban Andrei Stan savim
Timp execuţie pe test0.2 secLimită de memorie6144 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Joc14

Jocul de simetrie al lui Stanislaw Ulam se joacă pe un caroiaj cu 50 × 50 de pătrăţele. Iniţial se aşează o literă sau două litere 'o' mici pe una, respectiv pe două dintre pătrăţele. Apoi, la fiecare pas al jocului:

  • Pe fiecare pătrăţel vecin cu un singur pătrăţel pe care se află o literă mică 'o' sau un caracter '*' şi care este gol, se aşează o literă mică 'o'.
  • Toate literele 'o' mici de la pasul anterior se transformă în caractere '*'.
  • Caracterele '*' existente anterior acestui pas dispar.

Două pătrăţele sunt vecine dacă au o singură latură în comun.

Cerinţă

Scrieţi un program care simulează acest joc pe un caroiaj dat! Jocul se termină după un pas în care s-a aşezat cel puţin o literă pe prima sau pe ultima linie, respectiv pe prima sau pe ultima coloană a caroiajului.

Date de intrare

Pe prima linie a fişierului de intrare joc14.in se află un număr natural n, reprezentând dimensiunea caroiajului. Pe următoarea linie se află valoarea 1 sau 2, reprezentând faptul că jocul începe cu o literă 'o' sau cu două. Dacă această valoare este 1, pe următoarea linie sunt scrise două numere naturale, despărţite printr-un spaţiu, reprezentând indicele de linie şi cel de coloană a poziţiei pe care se află litera. Dacă această valoare este 2, pe următoarea linie sunt scrise patru numere naturale, despărţite prin câte un spaţiu, reprezentând indicele de linie şi cel de coloană ale poziţiilor pe care se află cele două litere. 

Date de ieşire

În fişierul de ieşire joc14.out veţi „desena” caroiajul după efectuarea fiecărui pas, până se termină jocul. În fişier veţi afişa un tablou bidimensional de caractere, corespunzător fiecărui pas, în care pe poziţiile corespunzătoare pătrăţelelor goale se vor scrie caractere '.', iar în rest se vor scrie caractere 'o' sau '*'. Între două caroiaje diferite se va lăsa o linie vidă. Dacă prima literă 'o' sau cel puţin una din primele două este poziţionată pe chenarul caroiajului, nu se efectuează niciun pas şi în fişier se va afişa caroiajul iniţial.

Restricţii

  • 5 ≤ n ≤ 50

Exemplu

joc14.injoc14.out
7
1
4 4
.......
.......
.......
...o...
.......
.......
.......
 
.......
.......
...o...
..o*o..
...o...
.......
.......
 
.......
...o...
...*...
.o*.*o.
...*...
...o...
.......
 
...o...
..o*o..
.o...o.
o*...*o
.o...o.
..o*o..
...o...
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?

remote content