Pagini recente » Cod sursa (job #682578) | Cod sursa (job #208793) | Cod sursa (job #3038986) | Cod sursa (job #541001) | Cod sursa (job #2906673)
#include <iostream>
#include <cstdio>
#include <fstream>
using namespace std;
ifstream in("radixsort.in");
ofstream out("radixsort.out");
#define BASE 255
#define POW 8
#define NMax 10000005
int n,v[NMax],m[NMax],aux[BASE+1];
int main()
{
int i,j,a,b,c;
in>>n>>a>>b>>c;
v[1] = b;
for(i = 2;i <= n; i++)
v[i]=(1 * a * v[i-1] + b)% c;
for(i = 0; i < 32; i+= POW)
{
for(j = 0; j <= BASE; j++)
aux[j] = 0;
for(j = 1; j <= n; j++)
++aux[(v[j]>>i)&BASE];
for(j = 1; j <= BASE; j++)
aux[j]+=aux[j-1];
for(j = n; j > 0; j--)
m[aux[(v[j]>>i)&BASE]--]=v[j];
for(j = 1; j <= n; j++)
v[j] = m[j];
}
for (int i = 1; i <= n; i += 10)
out<<v[i]<<" ";
out<<endl;
}