Pagini recente » Cod sursa (job #339735) | Cod sursa (job #1715201) | Cod sursa (job #2127478) | Cod sursa (job #1540312) | Cod sursa (job #2386346)
#include<bits/stdc++.h>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int n,a,b,c;
int v[10000002],v2[10000002];
int sm[260];
int main()
{
f>>n>>a>>b>>c;
v[1]=b;
for(int i=2;i<=n;++i)
{
long long z=(1LL*a*v[i-1]+b)%c;
v[i]=z;
}
int nrb=(1<<8)-1;
for(int i=0;i<=3;++i)
{
memset(sm,0,sizeof(sm));
for(int j=1;j<=n;++j)
{
int xx=(v[j]&nrb);
xx>>=(8*i);
sm[xx+1]++;
}
for(int j=1;j<=255;++j)
sm[j]+=sm[j-1];
int pz=0;
for(int j=1;j<=n;++j)
{
int xx=(v[j]&nrb);
xx>>=(8*i);
v2[++sm[xx]]=v[j];
}
memcpy(v,v2,sizeof(v2));
nrb<<=8;
}
for(int j=1;j<=n;j+=10)
g<<v[j]<<" ";
return 0;
}