Pagini recente » Cod sursa (job #1901570) | Cod sursa (job #2961585) | Cod sursa (job #1873802) | Cod sursa (job #1925352) | Cod sursa (job #2736831)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
const int N_MAX = 1e7 + 5;
int N, A, B, C;
int v[N_MAX];
void SortDigit(long long p)
{
vector < int > aux[10];
for (int i = 1; i <= N; i++) {
int cif = v[i] / p % 10;
aux[cif].push_back(v[i]);
}
int pos = 1;
for (int cif = 0; cif < 10; cif++) {
for (int i = 0; i < aux[cif].size(); i++) {
v[pos++] = aux[cif][i];
}
}
}
void RadixSort()
{
for (long long p = 1; p <= 1e17; p *= 10) {
SortDigit(p);
}
}
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;
}
RadixSort();
for (int i = 1; i <= N; i += 10) {
fout << v[i] << " ";
}
return 0;
}