Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | tester.in, tester.out | Sursă | Algoritmiada 2010, Runda 1 |
Autor | Cosmin Gheorghe | Adăugată de | |
Timp execuţie pe test | 0.15 sec | Limită de memorie | 36864 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Tester
Paraschiva e tester de jocuri. Ultimul joc pe care il testeaza are N stari si M taste ce definesc anumite actiuni. Fiecare tasta modifica starea jocului dintr-o anumita stare x in y. Paraschiva stie de la creatorii jocului ca oricare doua taste ( x, y ) si ( y, z ) apasate consecutiv produc un combo special (a doua tasta trebuie neaparat sa afecteze starea in care jocul este lasat de prima tasta). Paraschiva trebuie sa testeze toate combourile posibile ce pot aparea in joc. Pentru asta ea procedeaza astfel: porneste din orice stare a jocului si incepe sa tasteze pentru a descoperi efectele combo-urilor. Ea, de asemenea, poate oricand reseta jocul, adica poate reporni din orice stare doreste. Paraschiva se plictiseste repede asa ca doreste sa testeze jocul intr-un mod cat mai distractiv posibil: ea vrea sa produca o serie de tastari si resetari astfel incat orice combo posibil sa apara in secventa o singura data iar numarul total de resetari ale jocului sa fie minim.
Date de intrare
Fişierul de intrare tester.in contine pe prima linie doi intregi, N si M. Urmeaza M linii fiecare continand cate doi intregi: linia i+1 contine x si y reprezentand faptul ca tasta i modifica starea jocului din x in y.
Date de ieşire
Fişierul de ieşire tester.out va contine o singura linie care va descrie starile prin care jocul trece in secventa Paraschivei. Orice resetare este marcata cu un R. Pentru a intelege mai bine formatul fisierului de iesire studiati exemplul si explicatia.
Restrictii si precizari
- 1 ≤ N ≤ 500
- 1 ≤ M ≤ 5000
- Orice solutie care respecta conditiile din enunt va obtine punctajul pe respectivul test.
- Nu vor exista doua taste cu acelasi efect (adica sa aibe aceasi pereche ( x, y )).
Exemplu
tester.in | tester.out |
---|---|
5 5 1 2 2 3 3 5 5 4 2 4 | 1 2 3 5 4 R 1 2 4 |
4 7 1 2 2 3 3 2 1 4 4 3 3 4 3 1 | 4 3 1 4 3 4 R 2 3 1 2 3 4 3 2 3 2 |
Explicaţie
Pentru primul exemplu, tastele apasate sunt (1, 2) (2, 3) (3, 5) (5, 4) - (1, 2) (2, 4). Se observa ca orice combo posibil apare in secventa o singura data ( ( 1, 2 ) este o tasta, nu un combo deci poate aparea de mai multe ori ). Atentie valorile afisate sunt starile jocului si nu tastele; tastele sunt implicit determinate de doua numere consecutive din secventa.