Pagini recente » Cod sursa (job #364447) | Cod sursa (job #720236) | Cod sursa (job #1865026) | Cod sursa (job #2283824) | Cod sursa (job #2907134)
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int n, A, B, C;
f >> n >> A >> B >> C;
int v[n+1], aux[n+1], arr[256];
v[1] = B;
for(int i = 2; i <= n; i++) {
v[i] = (A * v[i - 1] + B) % C;
}
for(int i = 0; i < 32; i += 8) {
for(int j = 0; j < 256; j++)
arr[j] = 0;
for(int j = 1; j <= n; j++)
arr[(v[j] >> i) & 255]++;
for(int j = 1; j < 256; j++)
arr[j] += arr[j - 1];
for(int j = n; j >= 1; j--)
aux[arr[(v[j] >> i) & 255]--] = v[j];
for(int j = 1; j <= n; j++)
v[j] = aux[j];
}
for(int i = 1; i <= n; i += 10)
g << v[i] << " ";
return 0;
}