Cod sursa(job #2136585)
| Utilizator | Data | 19 februarie 2018 23:53:42 | |
|---|---|---|---|
| Problema | Radix Sort | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <bits/stdc++.h>
int N, A, B, C, i = 1, v['ॆ'];
main()
{
std :: ifstream("radixsort.in") >> N >> A >> B >> C;
for(*v = B; i < N; v[i] = (1LL * v[i++ - 1] * A + B) % C);
std :: queue<int> b[C = 256];
for(A = 0; A < 4; ++A)
{
for(i = B = 0; i != N; b[v[i++] >> A * 8 % 256].push(v[i]));
for(i = 0; i < 256; ++i)
for(; !b[i].empty(); v[B++] = b[i].front(), b[i].pop());
}
std :: ofstream o("radixsort.out");
for(i = 0; i < N; i += 10) o << v[i] << ' ';
}
