CSES - Datatähti 2018 loppu - Vaihdot
  • Time limit: 1.00 s
  • Memory limit: 512 MB

Annettuna on kaksi n×nn \times n -ruudukkoa, joista molemmat sisältävät kokonaisluvut 1,2,,n21,2,\ldots,n^2 jossain järjestyksessä. Ruudukon rivit ja sarakkeet on numeroitu kokonaisluvuin 1,2,,n1,2,\ldots,n.

Käytössäsi on seuraavat operaatiot:

  1. vaihda keskenään kaksi riviä
  2. vaihda keskenään kaksi saraketta

Tehtäväsi on muuttaa ensimmäinen ruudukko toiseksi operaatioiden avulla niin, että operaatioiden määrä on mahdollisimman pieni.

Syöte

Syötteen ensimmäisellä rivillä on kokonaisluku nn: ruudukoiden koko.

Sitten syötteessä on nn riviä, jotka kuvaavat ensimmäisen ruudukon, ja lopuksi nn riviä, jotka kuvaavat toisen ruudukon.

Tuloste

Tulosta ensin kokonaisluku kk: pienin operaatioiden määrä. Tulosta sitten kk riviä, jotka sisältävät operaatiot järjestyksessä.

Jokaisen operaation tulee olla muotoa "11 aa bb" (vaihda rivit aa ja bb) tai "22 aa bb" (vaihda sarakkeet aa ja bb).

Jos mitään ratkaisua ei ole olemassa, tulosta vain luku 1-1.

Esimerkki 1

Syöte:

3
1 2 3
4 5 6
7 8 9
2 1 3
8 7 9
5 4 6

Tuloste:

2
2 1 2
1 2 3

Esimerkki 2

Syöte:

3
6 3 7
8 1 4
9 2 5
8 5 2
7 3 1
9 4 6

Tuloste:

-1

Osatehtävä 1 (12 pistettä)

  • 1n31 \le n \le 3

Osatehtävä 2 (55 pistettä)

  • 1n501 \le n \le 50

Osatehtävä 3 (33 pistettä)

  • 1n5001 \le n \le 500