Pagini recente » Cod sursa (job #3241488) | Cod sursa (job #2646353) | Cod sursa (job #2873809) | Cod sursa (job #2497520) | Cod sursa (job #3229635)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
///restmare
///radixsort
int n, a[10000005];
int A, B, C;
void countSort(int n, long long exp)
{
int output[n+5];
int i, c[33] = { 0 };
for (i = 1; i <= n; i++)
c[(a[i] / exp) % 32]++;
for (i = 1; i < 32; i++)
c[i] += c[i - 1];
for (i = n; i >= 1; i--)
{
output[c[(a[i] / exp) % 32]] = a[i];
c[(a[i] / exp) % 32]--;
}
for (i = 1; i <= n; i++)
a[i] = output[i];
}
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; j *= 32)
countSort(n, j);
for(i=1; i<=n; i+=10)
fout << a[i] << " ";
return 0;
}