Pagini recente » Cod sursa (job #1417300) | Cod sursa (job #2927234) | Cod sursa (job #306171) | Cod sursa (job #1313016) | Cod sursa (job #1966406)
#include <stdio.h>
#include <stdlib.h>
int v[10000001],f[260],aux[10000001];
int main()
{
int n,a,b,c,p2,i,j;
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]=((long long)a*v[i-1]+b)%c;
p2=0;
for(i=1; i<=4; i++)
{
for(j=0; j<256; j++)
f[j]=0;
for(j=1; j<=n; j++)
f[(v[j]>>p2)%256]++;
for(j=1; j<256; j++)
f[j]=f[j-1]+f[j];
for(j=255; j>0; j--)
f[j]=f[j-1]+1;
f[0]=1;
for(j=1; j<=n; j++)
aux[f[(v[j]>>p2)%256]++]=v[j];
for(j=1; j<=n; j++)
v[j]=aux[j];
p2+=8;
}
for(i=1; i<=n; i+=10)
printf("%d ",v[i]);
return 0;
}