Pagini recente » Cod sursa (job #22932) | Cod sursa (job #516118) | Cod sursa (job #282067) | Cod sursa (job #839955) | Cod sursa (job #2900153)
#include <bits/stdc++.h>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
//ifstream f("D:/Proiecte/Clion/Projects/hashuri.in");
//ofstream g("D:/Proiecte/Clion/Projects/hashuri.out");
int n, a, b, c, v[10000003];
vector<int>bucket[10];
const int max_nr_of_digits = 10;
void RadixSort(int v[], int s, int d){
// for numbers with max 10 digits;
int digit_factor = 1;
for(int k = 1; k <= max_nr_of_digits; ++k){
for(int i = 0; i < 10 ; ++i)
bucket[i].clear();
for(int i = s; i <= d; ++i){
int bucket_index = (v[i] / digit_factor) % 10;
bucket[bucket_index].push_back(v[i]);
}
int ins_index = 0;
for(int i = 0; i < 10; ++i)
for(auto x : bucket[i])
v[ins_index++] = x;
digit_factor *= 10;
}
}
int main(){
f >> n >> a >> b >> c;
v[0] = b;
for(int i = 1; i < n; ++i)
v[i] = (a * v[i - 1] + b) % c;
RadixSort(v, 0, n - 1);
for(int i = 0; i < n; i += 10)
g << v[i] << ' ';
f.close();
g.close();
return 0;
}