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