Pagini recente » Cod sursa (job #187420) | Cod sursa (job #964853) | Cod sursa (job #3279852) | Cod sursa (job #2564876) | Cod sursa (job #1124612)
#include<cstdio>
using namespace std;
#define NMAX 10000005
int n,A,B,C,v[NMAX],w[NMAX],f[256],a[4]={0,8,16,24};
int main()
{
int i,p;
freopen("radixsort.in","r",stdin);
freopen("radixsort.out","w",stdout);
scanf("%d %d%d%d",&n,&A,&B,&C);
v[1]=B;
for (i=2;i<=n;++i)
v[i]=(int)(((long long)A*v[i-1]+B)%C);
for (i=0;i<256;++i)
f[i]=0;
for (i=1;i<=n;++i)
++f[(v[i]>>a[0])&255];
for (i=1;i<256;++i)
f[i]+=f[i-1];
for (i=n;i>0;--i)
{
w[f[(v[i]>>a[0])&255]]=v[i];
--f[(v[i]>>a[0])&255];
}
for (i=1;i<=n;++i)
v[i]=w[i];
for (i=1;i<=n;i+=10)
printf("%d ",v[i]);
printf("\n");
return 0;
}