Pagini recente » Cod sursa (job #177704) | Cod sursa (job #286760) | Cod sursa (job #2500491) | Cod sursa (job #2357603) | Cod sursa (job #1202853)
#include <fstream>
#include <vector>
#define INFILE "radixsort.in"
#define OUTFILE "radixsort.out"
using std::vector;
using std::ifstream;
using std::ofstream;
int main()
{
vector<long> v;
int n,a,b,c;
ifstream fin(INFILE);
ofstream fout(OUTFILE);
fin >> n >> a >> b >> c;
v.reserve(n);
for (auto i = 0; i < n; ++i) {
if (i == 0)
v.push_back(b);
else
v.push_back((v[i-1] * a + b) % c);
}
vector<long> zeros;
vector<long> ones;
for (auto i = 0; i < 32; ++i) {
zeros.clear();
ones.clear();
for (auto &x : v){
if ((x >> i) & 1)
ones.push_back(x);
else
zeros.push_back(x);
}
v.clear();
for (auto &x : zeros)
v.push_back(x);
for (auto &x : ones)
v.push_back(x);
}
for (auto i = 0; i < v.size(); i += 10)
fout << v[i] << " ";
fin.close();
fout.close();
return 0;
}