Pagini recente » Cod sursa (job #1012485) | Cod sursa (job #2567815) | Cod sursa (job #1257163) | Cod sursa (job #364) | Cod sursa (job #1674608)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector<int> v;
vector<int> bucket[10];
int main()
{
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int n, a, b, c;
f >> n >> a >> b >> c;
v.push_back(b);
for(int i = 1; i < n; i ++) {
v.push_back((a * v.back() + b) % c);
}
long long pow = 1;
for(int j = 1; j < 11; j ++) {
while(!v.empty()) {
bucket[v.back() / pow % 10].push_back(v.back());
v.pop_back();
}
for(int i = 0; i < 10; i ++) {
while(!bucket[i].empty())
v.push_back(bucket[i].back()), bucket[i].pop_back();
}
pow *= 10;
}
for(int i = 0; i < v.size(); i += 10) g << v[i] << " ";
g << "\n";
return 0;
}