Se dă o matrice cu linii și coloane, cu valori cuprinse între și inclusiv, nu neapărat distincte. O operație constă în selectarea a două linii sau două coloane consecutive și interschimbarea acestora (swap). O matrice yin-yang este o matrice în care , pentru orice pereche cu și și , pentru orice pereche cu și .
Cerinţă
Să se determine numărul minim de operații necesare pentru a transforma matricea dată într-o matrice yin-yang.
Date de intrare
În fișierul de intrare yinyang.in
se află scrise pe prima linie numerele naturale și , cu semnificația din enunț. Pe fiecare dintre următoarele linii se află câte numere naturale, reprezentând elementele matricei date . Numerele aflate pe aceeași linie a fișierului sunt separate prin câte un spațiu.
Date de ieșire
În fișierul yinyang.out
se va scrie numărul minim de operații cerut sau dacă nu există soluție.
Restricții și precizări
- ;
- Pentru teste în valoare de puncte: ;
- Pentru alte teste în valoare de puncte: ;
- Pentru alte teste în valoare de de puncte elementele din matrice sunt DISTINCTE.
Exemplul 1
yinyang.in
2 3
1 2 4
3 5 6
yinyang.out
0
Explicație
Matricea dată este matrice yin-yang.
Exemplul 2
yinyang.in
2 3
6 6 5
4 6 2
yinyang.out
3
Explicație
Operațiile pot fi următoarele:
swap(linia 1, linia 2)
;swap(coloana 2, coloana 3)
;swap(coloana 1, coloana 2)
.
Matricea dată va ajunge la final în forma yin-yang: