Pagini recente » best | Cod sursa (job #749722) | Cod sursa (job #1479093) | Cod sursa (job #983678) | Cod sursa (job #2546022)
#include <fstream>
#define b 256
#define dim 10000001
using namespace std;
ifstream fin ("radixsort.in");
ofstream fout ("radixsort.out");
int v[dim], aux[dim], f[256], i, n, A, B, C, biti, cif, c;
void sterge ()
{
for (int i=0; i<=255; i++)
f[i]=0;
}
int main()
{
fin>>n>>A>>B>>C;
v[1]=B;
for (i=2; i<=n; i++)
v[i]=(A*v[i-1]+B)%C;
while (C!=0)
{
cif++;
C/=b;
}
biti=0;
for (c=1; c<=cif; c++)
{
sterge();
for (i=1; i<=n; i++)
f[(v[i]>>biti)&255]++;
for (i=1; i<=b-1; i++)
f[i]+=f[i-1];
for (i=n; i>=1; i--)
aux[f[(v[i]>>biti)]--]=v[i];
for (i=1; i<=n; i++)
v[i]=aux[i];
biti+=8;
}
for (i=1; i<=n; i+=10)
fout<<v[i]<<" ";
}