Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | kbubblesort.in, kbubblesort.out | Sursă | Algoritmiada 2015, Runda 2 |
Autor | Eugenie Daniel Posdarascu | Adăugată de | |
Timp execuţie pe test | 1.25 sec | Limită de memorie | 20480 kbytes |
Scorul tău | N/A | Dificultate |
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 ...
Date de ieşire
În fişierul de ieşire kbubblesort.out ...
Restricţii
- ... ≤ ... ≤ ...
Exemplu
kbubblesort.in | kbubblesort.out |
---|---|
This is some text written on multiple lines. | This is another text written on multiple lines. |
Explicaţie
...