Pagini recente » Cod sursa (job #1638593) | Cod sursa (job #1000976) | Cod sursa (job #1155541) | Cod sursa (job #2303012) | Cod sursa (job #1316532)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int n,v[10000005],b[10000005];
void Count(int v[],int del,int dim)
{ int i,c[1<<dim],mask=(1<<dim)-1;
memset(c,0,sizeof(c));
for(i=1;i<=n;i++)
c[(v[i]>>del)&mask]++;
for(i=1;i<(1<<dim);i++)
c[i]+=c[i-1];
for(i=n;i>=1;i--)
{
b[c[(v[i]>>del)&mask]]=v[i];
c[(v[i]>>del)&mask]--;
}
for(i=1;i<=n;i++)
v[i]=b[i];
}
int main()
{ int i,x1,x2,x3;
f>>n>>x1>>x2>>x3;
v[1]=x2;
for(i=2;i<=n;i++)
v[i]=(x1*v[i-1]+x2)%x3;
for(i=0;i<=24;i+=8)
Count(v,i,8);
for(i=1;i<=n;i+=10)
g<<v[i]<<" ";
return 0;
}