Fişierul intrare/ieşire:kbubblesort.in, kbubblesort.outSursăAlgoritmiada 2015, Runda 2
AutorEugenie Daniel PosdarascuAdăugată deeudanipEugenie Daniel Posdarascu eudanip
Timp execuţie pe test1.25 secLimită de memorie20480 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise | Statistici

K-BubbleSort

Se da urmatorul algoritm de sortare in ordine crescatoare a elementelor unui vector de N numere naturale:

ok = 1;
while(ok)
{
    ok = 0;
    for(i = 1; i < N; i++)
        if(v[i] > v[i + 1])
        {
            aux = v[i];
            v[i] = v[i + 1];
            v[i + 1] = aux;
            ok = 1;
        }
}

Mai exact, cat timp vectorul v nu este sortat, o sa luam oricare 2 valori aflate pe pozitii consecutive si daca elementul mai mare apare inaintea celui mai mic, interschimbam valorile.

Tapescu a primit o permutare cu N elemente (un sir cu N numere naturale distincte din intervalul [1,N]). El a inceput sa sorteze elementele din permutare conform algoritmului de mai sus. Plictisit si foarte grabit ca trebuie sa se joace pe Tinder, el s-a hotarat sa se opreasca dupa primele K interschimbari din algoritm. Acum Tapescu va face o oferta: el va da permutarea de lungime N si valoarea K si voi trebuie sa ii spuneti cum o sa arate permutarea dupa primele K interschimbari. Daca faceti asta o sa va acorde 100 de puncte si posibil si 5 euro.

Date de intrare

Fişierul de intrare kbubblesort.in va contine pe prima linie 2 numere naturale N si K. Pe linia 2 vor fi N numere naturale distincte din intervalul [1,N] reprezentand permutarea de lungime N.

Date de ieşire

Fişierul de ieşire kbubblesort.out va contine pe prima linie N numere naturale reprezentand cum va arata permutarea dupa primele K interschimbari ale algoritmului BubbleSort (algoritmul de mai sus)

Restricţii

  • 1 ≤ N ≤ 1.000.000
  • 1 ≤ K ≤ 100.000.000
  • Se garantează ca dupa primele K interschimbari, permutarea nu va fi sortata.

Exemplu

kbubblesort.inkbubblesort.out
5 4
4 2 5 1 3
2 1 4 3 5
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?