Pagini recente » Cod sursa (job #161689) | Cod sursa (job #1506280) | Cod sursa (job #1737252) | Cod sursa (job #1570664) | Cod sursa (job #2417239)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("radixsort.in");
ofstream fout ("radixsort.out");
deque<int> rs[2][256];
int main()
{
int n,a,b,c,prev=0,k=0;
fin>>n>>a>>b>>c;
for(int i=1;i<=n;++i){
rs[0][(prev=(a*1LL*prev+b)%c) & 0x000000ff].push_back( prev );
}
for(int i=0;i<=255;++i){
while(!rs[0][i].empty()){
int e=rs[0][i].front();
rs[1][(e & 0x0000ff00)>>8].push_back(e);
rs[0][i].pop_front();
}
}
for(int i=0;i<=255;++i){
while(!rs[1][i].empty()){
int e=rs[1][i].front();
rs[0][(e & 0x00ff0000)>>16].push_back(e);
rs[1][i].pop_front();
}
}
for(int i=0;i<=255;++i){
while(!rs[0][i].empty()){
int e=rs[0][i].front();
rs[1][(e & 0xff000000)>>24].push_back(e);
rs[0][i].pop_front();
}
}
for(int i=0;i<=255;++i){
while(!rs[1][i].empty()){
++k;
if(k%10==1)
fout<<rs[1][i].front()<<' ';
rs[1][i].pop_front();
}
}
return 0;
}