CSES - Datatähti 2017 alku - Järjestys
  • Time limit: 2.00 s
  • Memory limit: 512 MB

Annettuna on taulukko, jossa on nn kokonaislukua. Jokainen luku väliltä 1n1 \ldots n esiintyy taulukossa tasan kerran.

Tehtäväsi on järjestää taulukon luvut pienimmästä suurimpaan kääntöjen avulla. Jokainen kääntö muuttaa taulukon kk ensimmäisen luvun järjestyksen käänteiseksi, missä kk on valitsemasi luku (1kn1 \le k \le n).

Sinun tulee etsiä jokin sarja kääntöjä, jotka järjestävät taulukon. Vastaus hyväksytään, jos kääntöjen määrä on enintään 5n5n.

Syöte

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

Seuraavalla rivillä on nn lukua, jotka kuvaavat taulukon sisällön.

Tuloste

Tulosta ensin kokonaisluku mm: kääntöjen määrä (0m5n0 \le m \le 5n).

Tulosta sitten mm lukua, joista jokainen kuvaa käännön kk.

Esimerkki

Syöte:

8
6 7 2 5 1 4 3 8

Tuloste:

6
3 6 2 5 7 3

Esimerkissä taulukon järjestys muuttuu seuraavasti:

  • [6,7,2,5,1,4,3,8][6,7,2,5,1,4,3,8]
  • [2,7,6,5,1,4,3,8][2,7,6,5,1,4,3,8]
  • [4,1,5,6,7,2,3,8][4,1,5,6,7,2,3,8]
  • [1,4,5,6,7,2,3,8][1,4,5,6,7,2,3,8]
  • [7,6,5,4,1,2,3,8][7,6,5,4,1,2,3,8]
  • [3,2,1,4,5,6,7,8][3,2,1,4,5,6,7,8]
  • [1,2,3,4,5,6,7,8][1,2,3,4,5,6,7,8]

Osatehtävä 1 (19 pistettä)

  • 1n101 \le n \le 10

Osatehtävä 2 (37 pistettä)

  • 1n10001 \le n \le 1000

Osatehtävä 3 (44 pistettä)

  • 1n1051 \le n \le 10^5