Pagini recente » Cod sursa (job #2063099) | Cod sursa (job #741086) | Cod sursa (job #174681) | Cod sursa (job #356266) | Cod sursa (job #2499270)
#include <bits/stdc++.h>
#define DIM 10000005
using namespace std;
ifstream fin ("radixsort.in");
ofstream fout ("radixsort.out");
int cifra (long long a, long long b){
return ((a>>b)&255);
}
long long n, a, b, c, i, t, x, p;
int v[DIM], aux[DIM], f[300];
int main(){
fin >> n >> a >> b >> c;
v[1] = b;
for (i=2; i<=n; i++){
v[i] = (a*1LL*v[i-1] + b)%c;
}
for (t=1; t<=4; t++){
memset (f, 0, sizeof(f));
for (i=1; i<=n; i++){
x = cifra (v[i], p);
f[x]++;
}
for (i=1; i<=255; i++){
f[i] += f[i-1];
}
for (i=n; i>=1; i--){
x = cifra (v[i], p);
aux[f[x]] = v[i];
f[x]--;
}
for (i=1; i<=n; i++){
v[i] = aux[i];
}
p += 8;
}
for (i=1; i<=n; i+=10){
fout << v[i] << " ";
}
return 0;
}