Pagini recente » Cod sursa (job #2227131) | Cod sursa (job #2944829) | Cod sursa (job #2255264) | Cod sursa (job #1586238) | Cod sursa (job #1233589)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream ka("radixsort.in");
ofstream ki("radixsort.out");
const int N_MAX = 10000000;
int v[N_MAX + 1];
queue <int> coada[1 << 8 + 2];
int trans_nr(int i, int j)
{
return v[i] >> (1 << (8 * j));
}
int n, a, b, c;
int main()
{
ka >> n >> a >> b >> c;
v[1] = b;
for(int i = 2; i <= n; i++)
{
v[i] = (a * v[i-1] + b) % c;
}
for(int j = 0; j <= 3; j++)
{
for(int i = 1; i <= n; i++)
{
coada[trans_nr(i, j) % (1 << 8)].push(v[i]);
}
int k = 0;
for(int i = 0; i <= (1 << 8); i++)
{
while(!coada[i].empty())
{
v[++k] = coada[i].front();
coada[i].pop();
}
}
}
for(int i = 1; i <= n; i += 10)
ki << v[i] << " ";
}