Pagini recente » Cod sursa (job #895743) | Rating Dumitrescu Alexandra (alexandrad_14) | Cod sursa (job #964552) | Cod sursa (job #1649278) | Cod sursa (job #1695770)
#include <bits/stdc++.h>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int n,a,b,c,i;
int v[10000010],aux[10000010];
int ap[1<<8];
void bagaradix(int p)
{
memset(ap,0,sizeof ap);
int i;
int mask=(1<<8)-1;
for(i=1;i<=n;++i) ap[(v[i]>>p)&mask]++;
for(i=1;i<=mask;++i) ap[i]+=ap[i-1];
for(i=mask;i;--i) ap[i]=ap[i-1];
ap[0]=0;
for(i=1;i<=n;++i) aux[++ap[(v[i]>>p)&mask]]=v[i];
for(i=1;i<=n;++i) v[i]=aux[i];
}
int main()
{
f>>n>>a>>b>>c;
v[1]=b;
for(i=2;i<=n;++i) v[i]=(1LL*a*v[i-1]%c+b)%c;
for(i=0;i<32;i+=8) bagaradix(i);
for(i=1;i<=n;i+=10) g<<v[i];
return 0;
}