În ţara Utopia a avut loc recent o revoluţie digitală, în urma căreia s-a hotărât să se întrerupă serviciile de telefonie mobilă. Din fericire, Miruna s-a infiltrat în sediul central al principalului furnizor de telefonie din Utopia. Pentru a repune în funcţiune reţeaua, Miruna trebuie să treacă de un filtru de autentificare: ea are în faţă o matrice pătratică de dimensiune N
având elemente din mulţimea {0, 1}
. Asupra acestei matrice se pot efectua următoarele operaţii:
- se aleg două linii şi se interschimbă;
- se aleg două coloane şi se interschimbă.
Pentru a trece de filtrul de autentificare Miruna trebuie să obţină pe diagonala principală (toate elementele de forma A[i][i]
) valori egale cu 1.
Cerinţă
Determinaţi pentru Miruna o secvenţă de maxim 4*N
operaţii astfel încât să reuşească să treacă de filtrul de autentificare.
Date de intrare
Fişierul de intrare revolutie.in
va conţine pe prima linie numărul N
, reprezentând dimensiunea matricei. Pe următoarele N
linii se află câte N
valori din mulţimea {0, 1}
reprezentând valorile matricei.
Date de ieşire
Fişierul de ieşire revolutie.out
va conţine pe prima linie un singur număr întreg T
reprezentând numărul de operaţii efectuate. Fiecare din următoarele T
linii va descrie câte o operaţie: primul caracter de pe linie va fi L
dacă s-a aplicat o operaţie asupra liniilor şiC
dacă s-a aplicat o operaţie asupra coloanelor. Vor urma două valori între 1
şi N
reprezentând indicii liniilor/coloanelor interschimbate. În caz că nu există soluţie, se va afişa valoarea -1
.
Restricţii şi precizări
1 ≤ N ≤ 127
- Liniile şi coloanele sunt numerotate de la
1
laN
T
trebuie să aparţină intervalului[0, 4*N]
30%
dintre fişierele de test vor avea1 ≤ N ≤ 10
- În cazul în care există mai multe soluţii, se va afişa oricare dintre ele
- Miruna se opune fenomenului de “politically correctness”
Exemplu
revolutie.in
2
0 1
1 0
revolutie.out
1
L 1 2
Explicaţie
Interschimbând primele două linii obţinem matricea:
1 0
0 1