Pagini recente » Cod sursa (job #1944780) | Cod sursa (job #2783590) | Cod sursa (job #2584713) | Cod sursa (job #2949628) | Cod sursa (job #3229328)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int n, a[10000005];
int A, B, C;
vector<int> b[35];
int main()
{
ios_base::sync_with_stdio(0);
fin.tie(0);
fout.tie(0);
int i, maxi;
long long j;
fin >> n >> A >> B >> C;
maxi = a[1] = B;
for(i=2; i<=n; i++)
{
a[i] = (1LL * A * a[i-1] + B) % C;
maxi = max(maxi, a[i]);
}
for(j=1; maxi / j > 0; j *= 32)
{
for(i=1; i<=n; i++)
b[(a[i] / j) % 32].push_back(a[i]);
n = 0;
for(i=0; i<=31; i++)
{
for(auto w : b[i]) a[++n] = w;
b[i].clear();
}
}
for(i=1; i<=n; i+=10)
fout << a[i] << " ";
return 0;
}