Pagini recente » Cod sursa (job #471372) | Cod sursa (job #721369) | template/ixia | Cod sursa (job #705053) | Cod sursa (job #1464552)
#include<cstdio>
#include<cstring>
using namespace std;
int v[2][10000010],nr[260];
int main(){
freopen("radixsort.in","r",stdin);
freopen("radixsort.out","w",stdout);
int n,a,b,c,i,j,p=0;
scanf("%d%d%d%d",&n,&a,&b,&c);
v[p][1]=b;
for(i=2;i<=n;i++)
v[p][i]=((1LL*a*v[p][i-1])%c+b)%c;
for(j=0;j<32;j+=8){
memset(nr,0,sizeof(nr));
for(i=1;i<=n;i++)
nr[(v[p][i]>>j)&255]++;
for(i=1;i<=255;i++)
nr[i]+=nr[i-1];
for(i=n;i>=1;i--){
v[p^1][nr[(v[p][i]>>j)&255]]=v[p][i];
nr[(v[p][i]>>j)&255]--;
}
p^=1;
}
for(i=1;i<=n;i+=10)
printf("%d ",v[p][i]);
return 0;
}