Áles se află într-un castel, reprezentat printr-o matrice cu linii și coloane, fiecare element corespunzând unei camere. Fiecare cameră are asociat câte un număr natural de la la , care este memorat în elementul corespunzător din matrice. Oricare două camere cu același număr asociat sunt conectate printr-un tunel. De asemenea, fiecare cameră este conectată printr-o uşă cu o cameră vecină, elementele corespunzătoare acestora fiind în matrice pe acceași linie și pe coloane alăturate sau pe aceeași coloană și pe linii alăturate.
Scopul lui Áles este să viziteze toate camerele, fiecare cel puțin o dată, astfel încât numerele asociate lor, în ordinea vizitării acestora, să formeze un şir crescător, începând de la 1.
Áles alege la început o cameră care are asociat numărul . Din fiecare cameră ce corespunde unui element el poate vizita:
- folosind un tunel, orice cameră ce corespunde unui element astfel încât .
- folosind o uşă, orice camera vecină cu un număr asociat consecutiv, deci care corespunde unui element astfel încât și .
- folosind un teleportor, în orice cameră cu numărul asociat , la această metodă de deplasare putând să recurgă numai dacă nu poate ajunge la o astfel de cameră utilizând un tunel sau o uşă.
Ați înțeles, Áles doreşte să folosească teleportorul de cât mai puţine ori! El calculează mai întâi numărul minim necesar de teleportări pentru configurația inițială a camerelor, apoi face, pe rând, transformări succesive ale configurației, prin schimbarea numărului asociat pentru câte o cameră; după fiecare astfel de transformare, calculează din nou numărul minim necesar de teleportări pentru configurația respectivă.
Cerință
Pentru configurația inițială, precum și după fiecare dintre cele transformări ale acesteia, în ordinea în care sunt realizate, determinați numărul minim de teleportări necesare pentru ca Áles să își îndeplinească scopul.
Date de intrare
Fișierul de intrare teleportor.in
conține:
- pe prima linie numerele naturale și , cu semnificația din enunț.
- pe următoarele linii câte numere naturale, reprezentând numerele asociate inițial camerelor, în ordinea corespunzătoare elementelor din matrice, linie cu linie, de sus în jos, și de la stânga la dreapta pe fiecare linie.
- pe următoarea linie numărul , cu semnificația din enunț.
- pe următoarele linii câte trei numere naturale , , , cu semnificația că este schimbat cu .
Numerele aflate pe aceeași linie a fişierului sunt separate prin câte un spațiu.
Date de ieșire
Fișierul de ieşire teleportor.out
conţine pe linii, numerele minime de teleportări determinate conform cerinței, câte un singur număr pe linie, în ordinea indicată.
Restricții și precizări
- ;
- ;
- ;
- ;
- În configuraţia iniţială şi după fiecare transformare a acesteia se garantează că fiecare număr de la la este asociat cel puţin unei camere.
# | Punctaj | Restricții |
---|---|---|
1 | 29 | |
2 | 23 | |
3 | 20 | |
4 | 28 | Fără restricții suplimentare. |
Exemplul 1
teleportor.in
3 3
2 1 1
1 2 1
3 1 3
2
3 2 3
2 1 2
teleportor.out
1
0
0
Explicație
Înainte de prima operație un posibil drum care obține o singură teleportare poate fi:
.
Teleportarea are loc la pasul .
După prima operație, camerele sunt numerotate conform:
2 1 1
1 2 1
3 3 3
Un posibil drum care nu necesită nicio teleportare poate fi:
.
După a doua operație, camerele sunt numerotate conform:
2 1 1
2 2 1
3 3 3
Un posibil drum care nu necesită nicio teleportare poate fi:
.