318
Metoda Bucket Sort constă în distribuirea elementelor în mai multe grupe, numite “bucket-uri”. Apoi fiecare bucket este sortat individual folosind un algoritm de sortare oarecare.
Cerința
Se dă un şir cu n numere naturale ce trebuie sortat în funcţie de d. Dacă d este 1, şirul se va sorta descrescător, iar dacă este 0, se va sorta crescător.
Date de intrare
Fișierul de intrare bucketsort.in conține pe prima linie numărul n, iar pe a doua linie n numere naturale separate prin spații, iar pe a treia linie se va afla d.
Date de ieșire
Fișierul de ieșire bucketsort.out va conține pe prima linie şirul sortat în funcţie de d.
Restricții și precizări
n ≤ 10.000toate numerele ≤ 100.000.000d=0pentru 50% din tested=1pentru 50% din teste
Exemplu 1:
bucketsort.in
5 10 90 5 6 101 0
bucketsort.out
5 6 10 90 101
Explicație
Deoarece d este 0, şirul se sortează crescător
Exemplu 2:
bucketsort.in
5 10 90 5 6 101 1
bucketsort.out
101 90 10 6 5
Explicație
Deoarece d este 1, şirul se sortează descrescător
#include <bits/stdc++.h>
using namespace std;
ifstream cin("bucketsort.in");
ofstream cout("bucketsort.out");
int a[10001];
int main()
{
int n;
cin >> n;
for(int i = 0 ; i < n ; ++i)
cin >> a[i];
int d;
cin >> d;
sort(a , a + n);
if(d==1)
for(int i = n-1 ; i >= 0 ; --i)
cout << a[i] << ' ';
else
for(int i = 0 ; i < n ; ++i)
cout << a[i] << ' ';
return 0;
}
Comentarii