Pagini recente » Cod sursa (job #1299477) | Cod sursa (job #2745029) | Cod sursa (job #2211788) | Cod sursa (job #2331121) | Cod sursa (job #2499310)
#include <fstream>
#define DIM 10000010
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
inline int cifra(int x, long long p){
return ((x>>p)&255);
}
int v[DIM],aux[DIM];
int f[260];
long long N,A,B,C,mx,grupe,i,putere;
int main(){
fin>>N>>A>>B>>C;
v[1]=B;
mx=B;
for(i=2;i<=N;i++){
v[i]=(A*1LL*v[i-1]+B)%C;
if(v[i]>mx)
mx=v[i];
}
for(putere=0;putere<=24;putere+=8){
for(i=0;i<=255;i++)
f[i]=0;
for(i=1;i<=N;i++)
f[cifra(v[i],putere)]++;
for(i=1;i<=255;i++)
f[i]+=f[i-1];
for(i=N;i>=1;i--){
aux[f[cifra(v[i],putere)]--]=v[i];
}
for(i=1;i<=N;i++)
v[i]=aux[i];
}
for(i=1;i<=N;i+=10)
fout<<v[i]<<" ";
}