Fişierul intrare/ieşire:lexicografic.in, lexicografic.outSursăONI 2019, clasele 11-12
AutorConstantinescu Andrei CostinAdăugată deAlexPop28Pop Alex-Nicolae AlexPop28
Timp execuţie pe test1.6 secLimită de memorie131072 kbytes
Scorul tăuN/ADificultateN/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.inlexicografic.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).

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?