lexicografic

Time limit: 0.8s Memory limit: 128MB Input: lexicografic.in Output: lexicografic.out

Se dă un șir vv format din NN 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 KK, se cere șirul minim lexicografic ce se poate obține prin aplicarea a cel mult KK interschimbări de elemente de pe poziții consecutive.

Date de intrare

În fișierul lexicografic.in se află pe prima linie TT, reprezentând numărul de teste. Urmează cele TT teste, fiecare pe câte 2 linii. Pe prima linie din cadrul unui test se află două numere NN și KK separate prin spațiu. Pe linia a doua din cadrul unui test se află cele NN elemente ale șirului separate prin spații.

Date de ieșire

În fișierul lexicografic.out se vor afișa cele TT linii, câte una corespunzătoare răspunsului pe fiecare test. Linia corespunzătoare unui test va conține cele NN elemente separate prin spații ale șirului minim lexicografic ce s-a obținut din șirul inițial, după aplicarea a cel mult KK interschimbări de elemente de pe poziții consecutive.

Restricții și precizări

  • 1N250 0001 ≤ N ≤ 250 \ 000;
  • T2 500T ≤ 2 \ 500;
  • într-un fișier de intrare suma totală a lungimilor şirurilor corespunzătoare celor TT teste nu va depăși 250 000250 \ 000;
  • 1KN(N1)/21 ≤ K ≤ N \cdot (N-1)/2;
  • 1v[i]N1 ≤ v[i] ≤ N, pentru 1iN1 ≤ i ≤ N;
  • Vă rugăm să acordați atenție tipului de date necesar pentru a citi valorea lui KK;
  • Pentru acordarea punctajului pe un fișier de test este necesară rezolvarea corectă a tuturor celor TT teste;
  • Pentru teste în valoare de 55 puncte se garantează K=N(N1)/2K = N \cdot (N – 1) / 2;
  • Pentru alte teste în valoare de 77 puncte se garantează K=1K = 1;
  • Pentru alte teste în valoare de 2323 de puncte se garantează T10,N50T ≤ 10, N ≤ 50;
  • Pentru alte teste în valoare de 44 puncte se garantează T10,N100T ≤ 10, N ≤ 100;
  • Pentru alte teste în valoare de 1212 puncte se garantează T10,N500T ≤ 10, N ≤ 500;
  • Pentru alte teste în valoare de 2424 de puncte se garantează T10,N2 000T ≤ 10, N ≤ 2 \ 000;
  • Un șir a1,a2,...,ana_1,a_2,...,a_n este mai mic lexicografic decât un alt șir b1,b2,...,bnb_1,b_2,...,b_n dacă există un număr întreg p mai mic sau egal cu N astfel încât: a1=b1,a2=b2,...,ap1=bp1a_1 = b_1, a_2 = b_2, ... , a_{p–1} = b_{p–1}, iar ap<bpa_p < b_p.

Exemplu

lexicografic.in

3
5 2
4 2 3 1 1
4 3
2 1 3 4
6 4
5 3 5 3 4 6

lexicografic.out

2 3 4 1 1
1 2 3 4
3 3 5 4 5 6

Explicații

Pentru primul test:
Șirul este format din N=5N = 5 elemente, și anume v=(4,2,3,1,1)v=(4,2,3,1,1). Putem efectua K=2K=2 interschimbări. Interschimbând elementele v[1]v[1] și v[2]v[2] obținem șirul (2,4,3,1,1)(2,4,3,1,1), apoi după interschimbarea elementelor v[3]v[3] și v[2]v[2] se obține șirul minim lexicografic (2,3,4,1,1)(2,3,4,1,1).

Log in or sign up to be able to send submissions!