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

Annettuna on lista, jossa on luvut 1,2,\dots,n jossain järjestyksessä. Listan alkiot on indeksoitu kokonaisluvuin 1: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 5n siirtoa.

Syöte

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

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

Tuloste

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

Voit tulostaa jokaisessa testissä minkä tahansa kelvollisen ratkaisun. Jos ratkaisua ei ole olemassa, tulosta vain -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ä)

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

Osatehtävä 2 (65 pistettä)

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