Pagini recente » Cod sursa (job #1521475) | Cod sursa (job #1661502) | Cod sursa (job #364895) | Cod sursa (job #2414814) | Cod sursa (job #1759928)
#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 & (1 << i))
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;
}