Pagini recente » Cod sursa (job #186597) | Cod sursa (job #2316316) | Cod sursa (job #627105) | Cod sursa (job #2206161) | Cod sursa (job #1953293)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("radixsort.in");
ofstream fout ("radixsort.out");
const int maxn = 1e7 + 5;
queue <int> Q[256];
int V[maxn];
void Radix (int n) {
for (int bit = 0; bit < 32; bit += 8) {
int lg = 0;
for (int i = 1; i <= n; i++) {
int pos = (V[i] >> bit) & 255;
Q[pos].push(V[i]);
}
for (int i = 0; i < 256; i++) {
while (!Q[i].empty()) {
V[++lg] = Q[i].front();
Q[i].pop();
}
}
}
}
int main () {
ios_base :: sync_with_stdio (false);
int n, a, b, c, i;
fin >> n >> a >> b >> c;
V[1] = b % c;
for (i = 2; i <= n; i++) {
V[i] = (1LL * a * V[i - 1] + b) % c;
}
Radix(n);
for (i = 1; i <= n; i+= 10) {
fout << V[i] << " ";
}
fout << "\n";
fin.close();
fout.close();
return 0;
}