CSES - Datatähti 2025 loppu - Permutaatio
  • Language:
  • Time limit: 1.00 s
  • Memory limit: 512 MB

Tehtäväsi on muodostaa permutaatio p1,p2,,pnp_1,p_2,\dots,p_n eli lista, joka sisältää jokaisen kokonaisluvun 1n1 \dots n tasan kerran.

Permutaation tulee täyttää seuraavat ehdot:

  • Pisin kohtaan ii päättyvä nouseva alijono sisältää aia_i alkiota.
  • Pisin kohdasta ii alkava laskeva alijono sisältää bib_i alkiota.

Alijono on listan osalista, joka saadaan kulkemalla lista läpi vasemmalta oikealle ja valitsemalla osa alkioista. Esimerkiksi listan [1,2,3,4][1,2,3,4] alijonoja ovat [2][2], [1,3][1,3] ja [1,2,3,4][1,2,3,4].

Nousevassa alijonossa jokainen alkio on edellistä suurempi, ja laskevassa alijonossa jokainen alkio on edellistä pienempi.

Syöte

Ensimmäisellä rivillä on kokonaisluku nn.

Toisella rivillä on nn kokonaislukua: a1,a2,,ana_1,a_2,\dots,a_n.

Kolmannella rivillä on nn kokonaislukua: b1,b2,,bnb_1,b_2,\dots,b_n.

Tuloste

Tulosta nn lukua: permutaatio p1,p2,,pnp_1,p_2,\dots,p_n. Jos ratkaisuja on useita, voit tulostaa minkä tahansa niistä. Jos ratkaisua ei ole olemassa, tulosta IMPOSSIBLE.

Esimerkki 1

Syöte:

8
1 2 1 3 2 3 4 4
2 2 1 2 1 1 2 1

Tuloste:

2 5 1 7 3 4 8 6

Selitys: Esimerkiksi a4=3a_4=3 ja b4=2b_4=2. Pisin kohtaan 44 päättyvä nouseva alijono on [2,5,7][2,5,7], ja pisin kohdasta 44 alkava laskeva alijono on [7,3][7,3], [7,4][7,4] tai [7,6][7,6].

Esimerkki 2

Syöte:

2
1 1
1 2

Tuloste:

IMPOSSIBLE

Osatehtävä 1 (12 pistettä)

  • 1n81 \le n \le 8
  • 1ai,bin1 \le a_i, b_i \le n

Osatehtävä 2 (33 pistettä)

  • 1n5001 \le n \le 500
  • 1ai,bin1 \le a_i, b_i \le n

Osatehtävä 3 (55 pistettä)

  • 1n21051 \le n \le 2 \cdot 10^5
  • 1ai,bin1 \le a_i, b_i \le n