Pagini recente » Cod sursa (job #3281903) | Cod sursa (job #1122310) | Cod sursa (job #3234677) | Cod sursa (job #3187289) | Cod sursa (job #3291670)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
long long n, i, a, b, c;
vector<long long> v[2];
deque<long long> bk[12];
int main() {
fin >> n >> a >> b >> c;
v[1].push_back(b);
for(i = 2; i <= n; i++) v[1].push_back((a * v[1].back() % c + b) % c);
long long put = 1;
long long ma = *max_element(v[1].begin(), v[1].end());
int idx = 1;
while(put <= ma) {
int iCur = idx % 2;
int iUrm = (idx + 1) % 2;
for(int cur : v[iCur]) {
bk[cur / put % 10].push_back(cur);
}
v[iUrm].clear();
for(i = 0; i <= 9; i++) {
while(!bk[i].empty()) {
v[iUrm].push_back(bk[i].front());
bk[i].pop_front();
}
}
idx++;
put *= 10;
}
idx %= 2;
for(int i = 0; i < v[idx].size(); i += 10) fout << v[idx][i] << " ";
return 0;
}