Pagini recente » Cod sursa (job #1978158) | Cod sursa (job #193114) | Cod sursa (job #582306) | Cod sursa (job #1530919) | Cod sursa (job #2225778)
#include <bits/stdc++.h>
using namespace std;
const int kMax = 10000001;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int elem[kMax];
vector<int> counter[256];
unsigned int aux;
int main() {
int n, a, b, c, i, j;
fin >> n >> a >> b >> c;
fin.close();
elem[1] = b;
for (i = 2; i <= n; i++)
elem[i] = ((1LL * a * elem[i - 1]) % c + b) % c;
for (i = 0; i < 4; i++) {
for (j = 0; j < 256; j++)
counter[j].clear();
for (j = 1; j <= n; j++) {
aux = (elem[j] >> (8 * i)) & 255;
counter[aux].push_back(elem[j]);
}
int nr = 0;
for (j = 0; j < 256; j++)
for (int k : counter[j]) {
nr++;
elem[nr] = k;
}
}
for (i = 1; i <= n; i += 10) {
fout << elem[i] << " ";
}
fout.close();
return 0;
}