- Language:
- Time limit: 1.00 s
- Memory limit: 512 MB
Annettuna on lista, jossa on n kokonaislukua. Saat valita listasta k kohtaa ja järjestää haluamallasi tavalla uudestaan näissä kohdissa olevat luvut. Mikä on leksikografisesti pienin lista, jonka voit muodostaa?
Lista A on leksikografisesti pienempi kuin lista B, jos listalla A on pienempi luku ensimmäisessä kohdassa (vasemmalta oikealle), jossa listat eroavat. Esimerkiksi lista A=[1,3,2,4] on leksikografisesti pienempi kuin lista B=[1,3,4,2], koska listat eroavat kohdassa 3 ja tässä kohdassa listalla A on luku 2 ja listalla B on luku 4.
Syöte
Ensimmäisellä rivillä on kokonaisluvut n ja k: listan pituus ja valittavien kohtien määrä.
Toisella rivillä on n lukua x_1,x_2,\dots,x_n: listan sisältö.
Voit olettaa, että 2 \le k \le n ja 1 \le x_i \le n.
Tuloste
Tulosta n lukua y_1,y_2,\dots,y_n: leksikografisesti pienin lista.
Esimerkki 1
Syöte:
6 3 6 5 1 4 1 3
Tuloste:
1 5 1 4 3 6
Selitys: Paras ratkaisu on valita listan kohdat 1, 5 ja 6 ja järjestää uudestaan näissä kohdissa olevat luvut.
Esimerkki 2
Syöte:
4 4 1 2 3 4
Tuloste:
1 2 3 4
Selitys: Alkuperäinen lista on valmiiksi leksikografisesti pienin mahdollinen, joten lukujen järjestystä ei muuteta.
Osatehtävä 1 (7 pistettä)
- 2 \le n \le 10
Osatehtävä 2 (9 pistettä)
- 2 \le n \le 2 \cdot 10^5
- k = 2
Osatehtävä 3 (12 pistettä)
- 2 \le n \le 2 \cdot 10^5
- k = 3
Osatehtävä 4 (18 pistettä)
- 2 \le n \le 2000
Osatehtävä 5 (23 pistettä)
- 2 \le n \le 2 \cdot 10^5
- 1 \le x_i \le 10
Osatehtävä 6 (31 pistettä)
- 2 \le n \le 2 \cdot 10^5
