Atenție! Aceasta este o versiune veche a paginii., scrisă la 2023-09-19 08:23:42.000.
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 avatar mihai.tutu Mihai Tutu mihai.tutu
Timp de execuție pe test 0.1 sec Limită de memorie 262144 KB
Scorul tău N/A Dificultate stea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip emptystea de rating de tip empty
open book Poți vedea testele pentru această problemă accesând atașamentele .

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:

  1. Nivel fără mere – șarpele nu crește ci rămâne mereu de o singură pătrățică.
  2. Nivel cu mere, dar în care se garantează că șarpele nu se autointersectează în cele M mutări.
  3. 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

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 5 categorii