Fişierul intrare/ieşire: | lexicografic.in, lexicografic.out | Sursă | ONI 2019, clasele 11-12, ziua 1 |
Autor | Andrei Constantinescu | Adăugată de | |
Timp execuţie pe test | 0.8 sec | Limită de memorie | 131072 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Lexicografic
Se dă un şir v format din N elemente naturale nenule nu neapărat distincte.
Asupra şirului putem aplica un singur tip de operaţie: interschimbarea a două elemente aflate pe poziţii consecutive.
Cerinţă
Dându-se un număr natural K, se cere şirul minim lexicografic ce se poate obţine prin aplicarea a cel mult K interschimbări de elemente de pe poziţii consecutive.
Date de intrare
În fişierul lexicografic.in se află pe prima linie T, reprezentând numărul de teste.
Urmează cele T teste, fiecare pe câte 2 linii. Pe prima linie din cadrul unui test se află două numere N şi K separate prin spaţiu. Pe linia a doua din cadrul unui test se află cele N elemente ale şirului v separate prin spaţii.
Date de ieşire
În fişierul lexicografic.out se vor afişa cele T linii, câte una corespunzătoare răspunsului pe fiecare test. Linia corespunzătoare unui test va conţine cele N elemente separate prin spaţii ale şirului minim lexicografic ce s-a obţinut din şirul iniţial, după aplicarea a cel mult K interschimbări de elemente de pe poziţii consecutive.
Restricţii
- 1 ≤ N ≤ 250.000
- T ≤ 2500
- Într-un fişier de intrare suma totală a lungimilor şirurilor corespunzătoare celor T teste nu va depăşi 250.000.
- 1 ≤ K ≤ N*(N-1)/2
- 1 ≤ v[i] ≤ N, pentru 1 ≤ i ≤ N
- Vă rugăm să acordaţi atenţie tipului de date necesar pentru a citi valorea lui K.
- Pentru acordarea punctajului pe un fişier de test este necesară rezolvarea corectă a tuturor celor T teste.
- Pentru teste în valoare de 5 puncte se garantează K = N * (N - 1) / 2.
- Pentru alte teste în valoare de 7 puncte se garantează K = 1.
- Pentru alte teste în valoare de 23 de puncte se garantează T ≤ 10, N ≤ 50.
- Pentru alte teste în valoare de 4 puncte se garantează T ≤ 10, N ≤ 100.
- Pentru alte teste în valoare de 12 puncte se garnatează T ≤ 10, N ≤ 500.
- Pentru alte teste în valoare de 24 de puncte se garnatează T ≤ 10, N ≤ 2000.
- Un şir a1, a2,..., an este mai mic lexicografic decât un alt şir b1, b2,..., bn dacă există un număr întreg P mai mic sau egal cu N astfel încât:
a1 = b1, a2 = b2, ... , aP–1 = bP–1, iar aP < bP.
Exemplu
lexicografic.in | lexicografic.out |
---|---|
3 5 2 4 2 3 1 1 4 3 2 1 3 4 6 4 5 3 5 3 4 6 | 2 3 4 1 1 1 2 3 4 3 3 5 4 5 6 |
Explicaţie
Pentru primul test:
Şirul este format din N = 5 elemente, şi anume v=(4,2,3,1,1). Putem efectua K=2 interschimbări. Interschimbând elementele v[1]
şi v[2]
obţinem şirul (2,4,3,1,1), apoi după interschimbarea elementelor v[3]
şi v[2]
se obţine şirul minim lexicografic (2,3,4,1,1).