ConcursC++17

yinyang

Se dă o matrice AA cu NN linii și MM coloane, cu valori cuprinse între 11 și N⋅MN \cdot M 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 A[i][j]≥A[i][j–1]A[i][j] \geq A[i][j – 1], pentru orice pereche (i,j)(i, j) cu 1≤i≤N1 \leq i \leq N și 2≤j≤M2 \leq j \leq M și A[i][j]≥A[i–1][j]A[i][j] \geq A[i – 1][j], pentru orice pereche (i,j)(i, j) cu 2≤i≤N2 \leq i \leq N și 1≤j≤M1 \leq j \leq M.

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 NN și MM, cu semnificația din enunț. Pe fiecare dintre următoarele NN linii se află câte MM numere naturale, reprezentând elementele matricei date AA. 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 −1-1 dacă nu există soluție.

Restricții și precizări

  • 1≤N,M≤1001 \leq N, M \leq 100;
  • Pentru teste în valoare de 99 puncte: 1≤N,M≤51 \leq N, M \leq 5;
  • Pentru alte teste în valoare de 1818 puncte: N=1N = 1;
  • Pentru alte teste în valoare de 3636 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:

Figura 1 din enunțul original al problemei yinyang.Figura 1 din enunțul original al problemei yinyang.Mărește schema ↗

Sursă și autori

OJI 2019, clasele 10. Eugenie-Daniel Posdărăscu.

Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.

Se verifică autentificarea…

Un pas, apoi următorul.Înapoi sus ↑