Pagini recente » Cod sursa (job #3122484) | Cod sursa (job #239916) | Cod sursa (job #73798) | Cod sursa (job #2421268) | Cod sursa (job #2212490)
#include <cstdio>
using namespace std;
int v[10000001],pos[10000001];
void radix(int n)
{
int aux[10000001];
for(int i=0; i<32; i+=16)
{
int z=0;
for(int k=0; k<=65535; k++)
for(int j=1; j<=n; j++)
if((v[pos[j]]>>i)%65536==k)
aux[++z]=pos[j];
for(int j=1; j<=n; j++)
pos[j]=aux[j];
}
}
int main()
{
int i,n,a,b,c;
freopen("radixsort.in","r",stdin);
freopen("radixsort.out","w",stdout);
scanf("%d%d%d%d",&n,&a,&b,&c);
v[1]=b;
pos[1]=1;
for(i=2; i<=n; i++)
{
v[i]=((long long)v[i-1]*a+b)%c;
pos[i]=i;
}
radix(n);
for(i=1; i<=n; i+=10)
printf("%d ",v[pos[i]]);
return 0;
}