Cerința
Se dă un șir cu n
elemente, numere naturale, numerotate începând cu 1
și un număr k
. Considerăm k
subșiruri ale șirului, astfel:
- primul subșir este format din elementele din șir numerotate cu
1
,k+1
,2*k+1
, … - al doilea subșir este format din elementele din șir numerotate cu
2
,k+2
,2*k+2
, … - …
- al
k
-lea subșir este format din elementele din șir numerotate cuk
,2*k
,3*k
, …
Ordonați crescător fiecare dintre aceste subșiruri și afișați șirul obținut.
Date de intrare
Programul citește de la tastatură numerele n
și k
, iar apoi n
numere naturale, reprezentând elementele șirului.
Date de ieșire
Programul va afișa pe ecran elementele șirului, separate prin exact un spațiu, după efectuarea operațiilor cerute.
Restricții și precizări
1 ≤ k < n ≤ 1000
- cele
n
numere citite vor fi mai mici decât1.000.000.000
Exemplu
Intrare
11 3 7 5 4 3 1 6 8 9 11 10 2
Ieșire
3 1 4 7 2 6 8 5 11 10 9
Explicație
Cele trei subșiruri sunt: (7 3 8 10)
, (5 1 9 2)
și (4 6 11)
. După sortare, ele devin: (3 7 8 10)
, (1 2 5 9)
și (4 6 11)
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema KSort1:
#include <iostream>
using namespace std;
int main(){
int n , k, x[1005];
cin >> n >> k;
for(int i = 1 ; i <= n ; ++ i)
cin >> x[i];
for(int p = 1 ; p <= k ; ++p)
{
for(int i = p ; i < n ; i += k)
for(int j = i + k; j <= n ; j += k)
if(x[i] > x[j])
{
int aux = x[i];
x[i] = x[j];
x[j] = aux;
}
}
for(int i = 1 ; i <= n ; ++ i)
cout << x[i] << " ";
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #513 KSort1
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #513 KSort1 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!