Pagini recente » Cod sursa (job #2497157) | Cod sursa (job #533633) | Cod sursa (job #740629) | Cod sursa (job #3291806) | Cod sursa (job #2825064)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
void radixsort(vector <int> &v){
vector <int> cnt(256);
vector <int> otp(v.size());
for(int b = 0; b <= 31; b += 8){
for(auto x : v)
cnt[(x >> b) & 255]++;
for(int i = 1; i <= 255; i++)
cnt[i] += cnt[i - 1];
for(int i = v.size() - 1; i >= 0; i--)
otp[--cnt[(v[i] >> b) & 255]] = v[i];
v = otp;
fill(cnt.begin(), cnt.end(), 0);
}
}
int main()
{
int n, a, b, c;
fin >> n >> a >> b >> c;
vector <int> v(n);
v[0] = b;
for(int i = 1; i < n; i++)
v[i] = (1LL * a * v[i - 1] + b) % c;
radixsort(v);
for(int i = 0; i < n; i += 10)
fout << v[i] << " ";
return 0;
}