Revizia anterioară Revizia următoare
| Fișierul intrare/ieșire | snake.in, snake.out | Sursă | Testare IQ Academy 2023 |
|---|---|---|---|
| Autor | Cristian Frâncu | Adăugată de |
|
| Timp de execuție pe test | 0.1 sec | Limită de memorie | 262144 KB |
| Scorul tău | N/A | Dificultate |
Vezi soluțiile trimise | Statistici
Snake (clasa a 6-a)
În jocul Snake un șarpe pornește la plimbare printr-o matrice pătrată de dimensiune N×N. Astfel:- Șarpele ocupă inițial o pătrățică (are doar cap).
- Șarpele pleacă din colțul stânga-sus mergând pe prima linie, către dreapta.
- Când dă de o pătrățică tip zid șarpele cotește la dreapta și își continuă plimbarea.
- Când șarpele iese din matrice pe o latură intră înapoi în matrice pe latura opusă.
- Când șarpele dă de o pătrățică de tip măr el mănâncă mărul, mărul dispare, iar șarpele se lungește cu o pătrățică – capul avansează peste măr, iar coada rămâne pe loc.
- Dacă la o mutare șarpele intră peste o pătrățică din corpul lui (adică se autointersectează), ea nu se efectuează și jocul se oprește.
Dată o matrice și un număr M de mutări ale șarpelui să se afle poziția șarpelui la final. Jocul are trei niveluri:
- Nivel fără mere – șarpele nu crește ci rămâne mereu de o singură pătrățică.
- Nivel cu mere, dar în care se garantează că șarpele nu se autointersectează în cele M mutări.
- Nivel cu mere și șarpele se poate autointersecta, jocul oprindu-se înainte de a termina cele M mutări.
Date de intrare
Fișierul de intrare snake.in conține pe prima linie nivelul de joc, 1, 2 sau 3. Pe următoarea linie conține numerele N și M. Pe următoarea linie conține numărul Z al pătrățelelor zid, iar pe următoarele Z linii coordonatele linie și coloană ale zidurilor. Pe următoarea linie se află Numărul A al pătrățelelor măr, iar pe următoarele A linii coordonatele linie și coloană ale merelor. Dacă nivelul este 1, numărul A va fi zero și nu vor urma coordonate după el.
Date de ieșire
În fișierul de ieșire snake.out veți afișa, în funcție de nivelul de joc, astfel:
- Dacă nivelul este 1, linia și coloana șarpelui după cele M mutări (șarpele are doar o pătrățică).
- Dacă nivelul este 2, linia și coloana capului șarpelui și lungimea lui, după cele M mutări.
- Dacă nivelul este 3, linia și coloana capului șarpelui, lungimea lui și linia și coloana cozii șarpelui (ultima pătrățică a șarpelui), la finalul jocului (care se poate termina mai devreme de M mutări).
Restricții
- 8 ≤ N ≤ 1000
- 1 ≤ M ≤ 1 000 000
- 0 ≤ Z ≤ 4500
- 0 ≤ A ≤ 50 000
- Pătrățelele de tip zid nu au alte pătrățele tip zid lipite de ele pe orizontală, verticală sau diagonală.
- Pătrățica din stânga sus nu conține nici zid nici măr.
- Timpul de execuție pe test este 1 secundă, limita de memorie este 256 MB și scorul maxim pe problemă este de 100 de puncte.
Exemplu
| snake.in | snake.out | Explicație |
|---|---|---|
| 1 8 24 8 1 6 2 3 3 7 4 5 5 2 6 8 7 4 8 1 0 |
1 7 |
Matricea arată astfel (notăm cu ‘#’ zidurile):![]() .....#.. ..#..... ......#. ....#... .#...... .......# ...#.... #....... După cele 24 de mutări șarpele ajunge la coordonate (1 7) (drumul șarpelui este marcat cu săgeți, iar poziția lui finală cu ‘S’): >.<.v#S. ..#..... ....<.#^ ....#... .#...... .......# ..v#...> #....... |
| 2 8 24 8 1 6 2 3 3 7 4 5 5 2 6 8 7 4 8 1 7 1 2 1 3 2 5 3 1 3 3 3 4 3 5 |
1 7 8 |
|
| 2 8 24 8 1 6 2 3 3 7 4 5 5 2 6 8 7 4 8 1 7 1 2 1 3 2 5 3 1 3 3 3 4 3 5 |
1 7 8 |
|


Poți vedea testele pentru această problemă accesând
