Pagini recente » Cod sursa (job #2048374) | Cod sursa (job #215813) | Cod sursa (job #974359) | Cod sursa (job #2959044) | Cod sursa (job #2866490)
#include <iostream>
#include <vector>
#include <fstream>
std::ifstream f("radixsort.in");
std::ofstream g("radixsort.out");
int main(){
int n, i, j, k, arr, start;
long long a, b, c, x;
std::vector<int> t[2][256];
f >> n >> a >> b >> c;
t[0][b & 255].push_back((int)b);
x = b;
for(i = 1; i < n; i ++){
x = (a * x + b) % c;
t[0][x & 255].push_back((int)x);
}
arr = 1;
for(k = 8; k < 32; k ++){
for(i = 0; i < 256; ++ i){
for(j = 0; j < t[arr ^ 1][i].size(); j ++)
t[arr][(t[arr ^ 1][i][j] >> k) & 255].push_back(t[arr ^ 1][i][j]);
t[arr ^ 1][i].clear();
}
arr = (arr ^ 1);
}
arr = (arr ^ 1);
start = 0;
for(i = 0; i < 256; i ++){
for(j = start; j < t[arr][i].size(); j += 10)
g << t[arr][i][j] << " ";
start = j - t[arr][i].size();
}
return 0;
}