Pagini recente » Cod sursa (job #2345855) | Cod sursa (job #2438499) | Cod sursa (job #1767565) | Cod sursa (job #1252837) | Cod sursa (job #2901383)
#include <iostream>
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
vector <int> v(10000000);
vector<queue<int>> vectorCozi(256);
int main(){
long long n,a,b,c;
f>>n>>a>>b>>c;
v[0]=b;
for(int i=1; i<n; i++)
v[i]=(a*v[i-1]+b)%c;
//for(int i=1;i<n;i++)
//g<<v[i]<<" ";
// 38 2 62 44 74 65 80 14 83 50 23 68 116 77 101 20 32 53 59 8 11 47 110 5 98 107 92 35 89 122 26 104 56 95 71 29 17 119 113 41 38 2 62 44 74 65 80 14 83 50 23 68 116 77 101 20 32 53 59 8 11 47 110 5 98 107 92 35 89 122 26 104 56 95 71 29 17 119 113 41 38 2 62 44 74 65 80 14 83 50 23 68 116 77 101 20 32 53 59
for(int p=0; p<32 ; p+=8)
for(int i=0; i<n; i++)
vectorCozi[(v[i]>>p)&255].push(v[i]);
for(int i=0,j=0 ; i<256 ; i++){
while(!vectorCozi[i].empty()){
v[j++]=vectorCozi[i].front();
vectorCozi[i].pop();
}
}
for(int i=0; i<n; i+=10)
g<<v[i]<<" "; }