Pagini recente » Cod sursa (job #218631) | Cod sursa (job #2748098) | Cod sursa (job #199931) | Cod sursa (job #3152964) | Cod sursa (job #2491649)
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin ("radixsort.in");
ofstream fout("radixsort.out");
int n,A,B,C,pow,maxim;
int v[10000010],aux[10000010],f[260];
int putere(int x,int pow) {
return ( (x>>pow)&255 );
}
int main() {
fin>>n>>A>>B>>C;
v[1]=B;
for(int i=2;i<=n;i++){
v[i]=(A*v[i-1]+B)%C;
maxim=max(maxim,v[i]);
}
for(int secv=1;secv<=4;secv++){
///for(int i=1;i<=255;i++)
/// f[i]=0;
memset(f,0,sizeof(f));
for(int i=1;i<=n;i++)
f[putere(v[i],pow)]++;
for(int i=1;i<=255;i++)
f[i]+=f[i-1];
for(int i=n;i>=1;i--){
aux[f[putere(v[i],pow)]]=v[i];
f[putere(v[i],pow)]--;
}
for(int i=1;i<=n;i++)
v[i]=aux[i];
pow+=8;
}
for(int i=1;i<=n;i+=10)
fout<<v[i]<<" ";
return 0;
}