tower8

Time limit: 0.6s Memory limit: 64MB Input: tower8.in Output: tower8.out

Cerință

Dispozitivul de apărare al elfilor are forma unei matrice cu NN linii și MM coloane. În fiecare poziție a matricei se plasează câte un turn de aparare după reguli bine stabilite. Cât timp există poziții neocupate de un turn, se alege o astfel de poziție și se plasează acolo un turn de nivel 11. Numim această operațiune plasare. În funcție de configurația pozițiilor vecine (pe 88 direcții) turnul va trece la un nivel superior. Atunci când un turn atinge nivelul XX și are cel puțin un vecin de nivel XX, atunci el devine turn de nivelul X+1X+1 și toate turnurile vecine de nivel XX dispar, lăsând astfel locuri libere unde pot fi din nou plasate alte turnuri. Numim această operațiune upgrade și se va aplica de cate ori este posibil după o plasare. Dispozitivul de apărare are forma finală în momentul în care nu se mai poate plasa niciun turn.

Cunoscând configurația finală a dispozitivului de apărare indicați o succesiune minimală de plasări prin care să se ajungă în acea configurație.

Date de intrare

Fişierul tower8.in conţine pe prima linie două numere naturale separate prin spațiu, NN și MM - numărul liniilor și coloanelor dispozitivului de aparare. Pe următoarele NN linii se găsesc câte MM numere naturale nenule separate prin spațiu - nivelele turnurilor dispozitivului de aparare în forma finală.

Date de ieșire

Fişierul tower8.out va conţine pe prima linie un număr natural KK reprezentând numărul minim de turnuri care au fost plasate pentru a aduce dispozitivul de aparare la forma finală. Pe următoarele KK linii se gasesc câte doua numere naturale LL și CC separate prin spațiu - cu seminficația: se plasează un turn de nivel 11 pe linia LL, coloana CC a dispozitivului de aparare.

Restricții și precizări

  • 2N,M1002 \leq N, M \leq 100
  • dacă se afișează corect numai numărul minim de plasări se obține 20%20\% din punctaj
  • dacă se afișează o succesiune corectă cu un număr mai mare de plasări se obține 80%80\% din punctaj cu condiția ca numărul de plasări sa fie cel mult dublul numărului minim
  • dacă se afișează corect numărul minim de plasări și o succesiune corectă a acestora se obține 100%100\% din punctaj (succesiunea de plasări nu este unică!)
  • Atenție: pozițiile din colțurile dispozitivului de apărare au doar 33 vecini iar celelalte de la marginea dispozitivului de apărare au doar 55 vecini.

Exemplul 1

tower8.in

2 2
1 2
3 4

tower8.out

15
1 1
1 2
1 1
2 1
1 1
1 2
1 1
2 2
1 1
1 2
1 1
2 1
1 1
1 2
1 1

Explicație

S-a efectuat următorul șir de mutări

Unde PP – semnifică faptul urmează o plasare în poziția hașurată iar UU – semnifică faptul că urmează un upgrade în pozitia bordată cu ajutorul turnului subliniat din poziție vecină.

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