Pagini recente » Cod sursa (job #2601662) | Cod sursa (job #2688730) | Cod sursa (job #1905572) | Cod sursa (job #2399075) | Cod sursa (job #2623350)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
long long v[10000001], bz[256], aux[10000001], n;
void RadixSort(int byte_num) {
int i;
for (i = 0; i < 256; i++) {
bz[i] = 0;
}
for (i = 0; i < n; i++) {
long long nr = (v[i] >> (8 * byte_num)) & 255;
bz[nr]++;
}
for (i = 1; i < 256; i++) {
bz[i] += bz[i-1];
}
for (i = n-1; i >= 0; i--) {
long long nr = (v[i] >> (8 * byte_num)) & 255;
aux[bz[nr]-1] = v[i];
bz[nr]--;
}
for (i = 0; i < n; i++) {
v[i] = aux[i];
}
}
int main() {
long long a, b, c;
long long i;
fin >> n >> a >> b >> c;
v[0] = b;
for (i = 1; i < n; i++) {
v[i] = (a * v[i-1] + b) % c;
}
for (i = 0; i < 4; i++) {
RadixSort(i);
}
for (i = 0; i < n; i += 10) {
fout << v[i] << " ";
}
}