Pagini recente » Cod sursa (job #1298965) | Cod sursa (job #1433535) | Cod sursa (job #2796702) | Cod sursa (job #3122877) | Cod sursa (job #2766978)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
const int nmax=10000004;
int v[nmax];
int v2[nmax];
int indici[256];
int main()
{
long long n,a,b,c;
fin>>n>>a>>b>>c;
v[0]=b;
for(int i=1; i<n; i++)
{
v[i]=(a*v[i-1]+b)%c;
}
for(int p=0; p<32; p+=8)
{
for(int i=0; i<n; i++)
{
indici[((v[i]>>p)&255)+1]++;
}
for(int i=1; i<256; i++) indici[i]+=indici[i-1];
for(int i=0; i<n; i++)
{
int x=(v[i]>>p)&255;
v2[indici[x]++]=v[i];
}
memcpy(v,v2,sizeof (v2));
memset(indici,0,sizeof (indici));
}
for(int i=0; i<n; i+=10)
{
fout<<v[i]<<" ";
}
}