Pagini recente » Cod sursa (job #1634840) | Cod sursa (job #1656089) | Cod sursa (job #399743) | Cod sursa (job #2787130) | Cod sursa (job #2214545)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("radixsort.in");
ofstream fout ("radixsort.out");
const int NMAX = 10000000;
int v[NMAX + 2];
int a, b, c, n, maxx;
int x[NMAX + 2];
int main()
{
fin >> n >> a >> b >> c;
v[1] = b;
for (int i = 2; i <= n; i++) {
v[i] = (1LL * v[i - 1] * a + b) % c;
maxx = max(v[i], maxx);
}
for (long long p = 1; p <= maxx; p *= 10) {
int f[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
for (int i = 1; i <= n; i++)
f[v[i] / p % 10]++;
for (int i = 1; i < 10; i++)
f[i] = f[i] + f[i - 1];
for (int i = n; i >= 1; i--) {
x[f[v[i] / p % 10]] = v[i];
f[v[i] / p % 10]--;
}
for (int i = 1; i <= n; i++)
v[i] = x[i];
}
for (int i = 1; i <= n; i += 10)
fout << v[i] << " ";
return 0;
}