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

Annettuna on taulukko, jossa on n kokonaislukua. Jokainen luku väliltä 1 \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 k ensimmäisen luvun järjestyksen käänteiseksi, missä k on valitsemasi luku (1 \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 5n.

Syöte

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

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

Tuloste

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

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

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]
  • [2,7,6,5,1,4,3,8]
  • [4,1,5,6,7,2,3,8]
  • [1,4,5,6,7,2,3,8]
  • [7,6,5,4,1,2,3,8]
  • [3,2,1,4,5,6,7,8]
  • [1,2,3,4,5,6,7,8]

Osatehtävä 1 (19 pistettä)

  • 1 \le n \le 10

Osatehtävä 2 (37 pistettä)

  • 1 \le n \le 1000

Osatehtävä 3 (44 pistettä)

  • 1 \le n \le 10^5