Pagini recente » Cod sursa (job #1741648) | Cod sursa (job #177442) | Cod sursa (job #446705) | Cod sursa (job #1883489) | Cod sursa (job #1868331)
#include<cstdio>
#include<cstring>
using namespace std;
const int NMAX=10000005;
int v[NMAX],aux[NMAX],mod[270];
void rs(int n)
{
int buck,i;
for(buck=0; buck<=24; buck+=8)
{
for(i=1; i<=n; i++)
mod[(v[i]>>buck)&255]++;
for(i=1; i<=256; i++)
mod[i]+=mod[i-1];
for(i=n; i>=1; i--)
aux[mod[(v[i]>>buck)&255]--]=v[i];
for(i=1; i<=n; i++)
v[i]=aux[i];
memset(mod,0,sizeof(mod));
memset(aux,0,sizeof(aux));
}
}
int main()
{
freopen("radixsort.in","r",stdin);
freopen("radixsort.out","w",stdout);
int t,n,sum,i,k,a,b,c;
scanf("%d%d%d%d",&n,&a,&b,&c);
for(i=1; i<=n; ++i)
v[i]=(1LL*a*v[i-1]+b)%c;
rs(n);
for(i=1; i<=n; i+=10)
printf("%d ",v[i]);
printf("\n");
return 0;
}