Să considerăm o tablă de șah de dimensiune ( este par), în care liniile și coloanele sale sunt numerotate de la la . Pe această tablă se află, pe fiecare pătrat, câte un număr natural astfel încât suma numerelor de pe pătratele albe este egală cu suma numerelor de pe pătratele negre.
Pătratele vecine ale pătratului cu coordonatele , , sunt toate pătratele din lista dată : , , , , ale căror coordonate aparțin intervalului .
Definim două operații:
1 i j k p x
– adună la valorile două pătrate vecine aflate pe pozițiile și același număr natural .2 i j k p
– scade din valorile două pătrate vecine aflate pe pozițiile și valoarea minimă reținută pe cele două poziții.
Cerință
Utilizând un număr cât mai mic de operații de tip sau să se obțină pe tabla de șah numai valori nule.
Date de intrare
Fișierul de intrare sah.in
conține pe prima linie numărul natural , iar pe următoarele linii se găsesc câte numere naturale reprezentând câte o linie din matrice.
Date de ieșire
Fișierul de ieșire sah.out
va conține mai multe linii. Pe fiecare linie este definită câte o operație, deci va conține fie șase numere dacă operația este de tip , fie cinci numere dacă operația este de tip .
Restricții și precizări
- și este par;
- , pentru ;
- și ;
- la orice moment de timp;
- Valorile scrise pe aceeași linie în fișierul de intrare, respectiv în fișierul de ieșire sunt separate prin câte un spațiu.
- Dacă la un test numărul de operații pe care-l obțineți este mai mic decât și operațiile conduc la matricea nulă, atunci veți obține punctajul complet pe acel test.
- Restricțiile precizate sunt pentru fiecare test, punctajul fiind suma punctelor obținute pe fiecare test.
- Valorile scrise pe aceeași linie în fișierul de intrare și în fișierul de ieșire sunt separate prin câte un spațiu.
- Este acceptată orice soluție corectă.
- Veți primi punctaj maxim (% din valoarea testului) dacă numărul de operații pe care-l obțineți este mai mic decât ;
- Veți primi punctaj parțial (% din valoarea testului) dacă numărul de operații pe care-l obțineți este cuprins între ;
- Nu veți primi niciun punctaj (% din valoarea testului) dacă numărul de operații pe care-l obțineți este mai mare decât sau există operații incorecte;
Exemplu
sah.in
2
7 5
3 1
sah.out
1 2 1 2 2 4
2 1 1 2 1
2 1 2 2 2
Explicație
După prima operație matricea devine:
7 5
7 5
După a doua operație matricea devine:
0 5
0 5
După a treia operație matricea devine:
0 0
0 0