Pagini recente » Cod sursa (job #583460) | Cod sursa (job #644590) | Cod sursa (job #1557702) | Cod sursa (job #2756550) | Cod sursa (job #1369796)
#include<fstream>
#include<queue>
#define Nmax 10000005
#define MASK 511
using namespace std;
ifstream in("radixsort.in");
ofstream out("radixsort.out");
using namespace std;
int V[Nmax];
queue<int > Q[MASK];
int main()
{
int N, A, B, C;
in >> N >> A >> B >> C;
V[1] = B;
for (int i = 2; i <= N; i++)
V[i] = (1LL * V[i - 1] * A + B) % C;
for (int t = 0; t < 4; t++)
{
for (int i = 1; i <= N; i++)
Q[V[i] & (MASK << (t << 3))].push(V[i]);
int k = 0;
for (int i = 0; i < MASK; i++)
while (!Q[i].empty())
{
V[++k] = Q[i].front();
Q[i].pop();
}
}
for (int i = 1; i <= N; i += 10)
out << V[i] << " ";
}