Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | joc14.in, joc14.out | Sursă | Grigore Moisil 2010, clasele 7-8 |
Autor | Clara Ionescu | Adăugată de | |
Timp execuţie pe test | 0.1 sec | Limită de memorie | 6144 kbytes |
Scorul tău | N/A | Dificultate | N/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.in | joc14.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... |