Pagini recente » Cod sursa (job #3151375) | Cod sursa (job #1477088) | Cod sursa (job #1045610) | Cod sursa (job #3252763) | Cod sursa (job #1786303)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include<cmath>
using namespace std;
typedef long long int64;
main() {
ifstream cin("radixsort.in");
ofstream cout("radixsort.out");
int64 n, a, b, c;
cin>>n>>a>>b>>c;
//sqrtN buckets
int64 kn = round(sqrtl(c))+200;
vector< vector<int64> > t(kn);
//generate vector
long long x = b;
t[x/kn].push_back(x);
for (int64 i = 1; i<n; i++) {
x = (a * x + b) % c;
t[x/kn].push_back(x);
}
//sort buckets
for (int64 i = 0; i < t.size(); i++) {
sort(t[i].begin(), t[i].end());
}
//show
int64 k = 0;
for (int64 i = 0; i < t.size(); i++) {
if (t[i].size()) {
for (int64 j = 0; j < t[i].size(); j++) {
k++;
if (k%10==1) {
cout<<t[i][j]<<" ";
}
}
}
}
}