Pagini recente » Cod sursa (job #2830352) | Cod sursa (job #1768900) | Cod sursa (job #91709) | Cod sursa (job #945468) | Cod sursa (job #1509090)
#include <fstream>
using namespace std;
int v[10000001], cnt[256], aux[10000001], n;
void RadixSort(int byte_num) {
int i;
for (i = 0; i < n; i++) {
int nr = (v[i] >> (8 * byte_num)) & 255;
cnt[nr]++;
}
for (i = 1; i < 256; i++) {
cnt[i] += cnt[i-1];
}
for (i = n-1; i >= 0; i--) {
int nr = (v[i] >> (8 * byte_num)) & 255;
aux[cnt[nr]-1] = v[i];
cnt[nr]--;
}
for (i = 0; i < n; i++) {
v[i] = aux[i];
}
}
int main() {
int a, b, c, i;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
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] << " ";
}
return 0;
}