Teleportor

Time limit: 0.6s Memory limit: 128MB Input: teleportor.in Output: teleportor.out

Áles se află într-un castel, reprezentat printr-o matrice AA cu NN linii și NN coloane, fiecare element corespunzând unei camere. Fiecare cameră are asociat câte un număr natural de la 11 la KK, 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 11. Din fiecare cameră ce corespunde unui element Ai,jA_{i,j} el poate vizita:

  • folosind un tunel, orice cameră ce corespunde unui element (i,j)(i', j') astfel încât Ai,j=Ai,jA_{i', j'} = A_{i, j}.
  • folosind o uşă, orice camera vecină cu un număr asociat consecutiv, deci care corespunde unui element (i,j)(i', j') astfel încât ii+jj=1|i' - i| + |j' - j| = 1 și Ai,j=Ai,j+1A_{i', j'} = A_{i, j} + 1.
  • folosind un teleportor, în orice cameră cu numărul asociat Ai,j+1A_{i,j}+1, 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, QQ 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 QQ 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 NN și KK, cu semnificația din enunț.
  • pe următoarele NN linii câte NN 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 QQ, cu semnificația din enunț.
  • pe următoarele QQ linii câte trei numere naturale ii, jj, cc, cu semnificația că Ai,jA_{i,j} este schimbat cu cc.

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 Q+1Q + 1 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

  • 1N1 0001 \leq N \leq 1 \ 000;
  • 1KN21 \leq K \leq N^2;
  • 1Q250 0001 \leq Q \leq 250 \ 000;
  • 1i,jN1 \leq i, j \leq N;
  • În configuraţia iniţială şi după fiecare transformare a acesteia se garantează că fiecare număr de la 11 la KK este asociat cel puţin unei camere.
# Punctaj Restricții
1 29 N,K,Q50N, K, Q \leq 50
2 23 N,Q100N, Q \leq 100
3 20 K=N21K = N^2 - 1
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:
(1,2)(1,3)(2,3)(3,2)(2,1)(1,1)(2,2)(3,1)(3,3)(1, 2) \to (1, 3) \to (2, 3) \to (3, 2) \to (2, 1) \to (1, 1) \to (2, 2) \to (3, 1) \to (3, 3).
Teleportarea are loc la pasul (2,2)(3,1)(2, 2) \to (3, 1).
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:
(1,2)(1,3)(2,3)(2,1)(1,1)(2,2)(3,2)(3,1)(3,3)(1, 2) \to (1, 3) \to (2, 3) \to (2, 1) \to (1, 1) \to (2, 2) \to (3, 2) \to (3, 1) \to (3, 3).

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:
(1,2)(1,3)(2,3)(2,2)(2,1)(1,1)(2,1)(3,1)(3,2)(3,3)(1, 2) \to (1, 3) \to (2, 3) \to (2, 2) \to (2, 1) \to (1, 1) \to (2, 1) \to (3, 1) \to (3, 2) \to (3, 3).

Log in or sign up to be able to send submissions!