Pagini recente » Cod sursa (job #308102) | Cod sursa (job #1117281) | Cod sursa (job #1723075) | Cod sursa (job #1526304) | Cod sursa (job #2898442)
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
deque<unsigned int> bucket[2][65536];
unsigned long long n, a, b, c;
ifstream fin;
ofstream fout;
void rsort() {
int i, j, k, val;
for (i = 0, val = b; i < n; ++i, val = (a * val + b) % c){
bucket[0][val&0x0000ffff].push_back(val);
}
for (i = 0; i < 65536; ++i) {
while (!bucket[0][i].empty()) {
unsigned int &e = bucket[0][i].front();
bucket[1][(e&0xffff0000)>>16].push_back(e);
bucket[0][i].pop_front();
}
}
k = 0;
for (i = 0; i < 65536; ++i) {
while (!bucket[1][i].empty()) {
if(k % 10 == 0){
fout << bucket[1][i].front() << " ";
}
++k;
bucket[1][i].pop_front();
}
}
}
int main(){
fin.open("radixsort.in");
fout.open("radixsort.out");
fin >> n >> a >> b >> c;
rsort();
}