Pagini recente » Cod sursa (job #1601486) | Cod sursa (job #2628069) | Cod sursa (job #360948) | Cod sursa (job #3216095) | Cod sursa (job #1290816)
#include <fstream>
#include <iostream>
#include <queue>
using namespace std;
ifstream fi("radixsort.in");
ofstream fo("radixsort.out");
int n, i, iv, x[10000001], p10, p, a, b, c;
vector<int> v[10];
int main() {
fi >> n >> a >> b >> c;
x[1] = b;
for (i = 2; i <= n; i++)
x[i] = (a * x[i-1] + b) % c;
p10 = 1;
for (p = 1; p <= 9; p++) {
for (i = 1; i <= n; i++) {
c = x[i] / p10 % 10;
v[c].push_back(x[i]);
}
ix = 0;
for (iv = 0; iv <= 9; iv++) { // Punem elementele in x.
for (i = 0; i < v[iv].size(); i++) {
ix++;
x[ix] = v[iv][i];
}
v[iv].clear();
}
p10 *= 10;
}
for (i = 1; i <= n; i += 10)
fo << x[i] << ' ';
return 0;
}