CSES - Putka Open 2020 – 3/5 - Vaihdot
  • Time limit: 1.00 s
  • Memory limit: 512 MB

Annettuna on lista, jossa on luvut 1,2,,n1,2,\dots,n jossain järjestyksessä. Listan alkiot on indeksoitu kokonaisluvuin 11:stä alkaen.

Joka siirrolla saat valita kaksi listan alkiota, jotka eivät ole vierekkäin, ja vaihtaa ne keskenään. Tehtäväsi on järjestää listan alkiot pienimmästä suurimpaan käyttäen enintään 5n5n siirtoa.

Syöte

Syötteen ensimmäisellä rivillä on kokonaisluku tt: testien määrä.

Tämän jälkeen tulee 2t2t riviä, jotka kuvaavat testit. Jokaisessa testissä ensimmäisellä rivillä on kokonaisluku nn ja toisella rivillä on listan sisältö.

Tuloste

Tulosta jokaisessa testissä ensin siirtojen määrä kk ja sitten kk riviä, jotka kuvaavat siirrot. Jokaisella rivillä on kaksi kokonaislukua aa ja bb: kohdissa aa ja bb olevat alkiot vaihdetaan keskenään.

Voit tulostaa jokaisessa testissä minkä tahansa kelvollisen ratkaisun. Jos ratkaisua ei ole olemassa, tulosta vain 1-1.

Esimerkki

Syöte:

4
2
1 2
5
5 4 3 2 1
3
2 1 3
4
2 4 3 1

Tuloste:

0
2
1 5
2 4
-1
2
1 4
2 4

Osatehtävä 1 (35 pistettä)

  • 1t10001 \le t \le 1000
  • 1n101 \le n \le 10

Osatehtävä 2 (65 pistettä)

  • 1t10001 \le t \le 1000
  • 1n1001 \le n \le 100