Pagini recente » Cod sursa (job #1692540) | Cod sursa (job #501288) | Cod sursa (job #1646527) | Cod sursa (job #2798811) | Cod sursa (job #2192708)
#include <fstream>
#include <queue>
#include <cmath>
#define NMAX 10000001
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
queue <int> q[256];
int v[NMAX];
int n,a,b,c;
int main()
{
int i, p=1, k, e, j, w, d, o;
f>>n>>a>>b>>c;
v[1] = b;
for(i=2;i<=n;i++)
v[i] = (1LL * a * v[i - 1] + b) % c;
for(j=0;j<=24;j+=8){
for(i=1;i<=n;i++)
q[(v[i]>>j)&255].push(v[i]);
e = 0;
for(w=0;w<=255 && e<n;w++)
while(!q[w].empty()){
v[++e] = q[w].front();
q[w].pop();
}
}
for(i=1;i<=n;i+=10)
g<<v[i]<<' ';
return 0;
}