Pagini recente » Cod sursa (job #2350275) | Cod sursa (job #2683097) | Cod sursa (job #1944602) | Cod sursa (job #1141897) | Cod sursa (job #3134561)
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("sse,avx,fma,avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
void radixsort(vector<int> &v) {
queue<int> q[10];
int max_elem = *max_element(v.begin(), v.end());
for (int p = 1; p <= max_elem; p *= 10) {
for (int x : v)
q[(x / p) % 10].push(x);
for (int cif = 0, index = 0; cif < 10; ++cif)
while(!q[cif].empty()) {
v[index++] = q[cif].front();
q[cif].pop();
}
}
}
void solve()
{
int n, a, b, c;
cin >> n >> a >> b >> c;
vector<int> v(n);
v[0] = b;
for (int i = 1; i < n; ++i)
v[i] = (v[i - 1] * 1LL * a + b) % c;
radixsort(v);
for (int i = 0; i < n; i += 10)
cout << v[i] << ' ';
cout << '\n';
}
int main()
{
freopen("radixsort.in", "r", stdin);
freopen("radixsort.out", "w", stdout);
int t = 1;
// cin >> t;
while(t--)
solve();
return 0;
}