Pagini recente » Cod sursa (job #1495592) | Cod sursa (job #2154850) | Cod sursa (job #359486) | Cod sursa (job #28591) | Cod sursa (job #1565606)
#include<fstream>
using namespace std;
ifstream in("radixsort.in");
ofstream out("radixsort.out");
const int Nmax = 10000001;
unsigned int v[Nmax],au[Nmax],p[1<<8],N,A,B,C;
int main(){
in>>N>>A>>B>>C;
v[1]=B;for(int i=2;i<=N;i++) v[i]=(A*v[i-1]+B)%C;
for(int k=0;k<4;k++){
for(int i=1;i<=N;i++) p[(v[i]>>(k*8))%(1<<8)]++;
for(int i=1;i<(1<<8);i++) p[i]+=p[i-1];
for(int i=N;i>=1;i--) au[p[(v[i]>>(k*8))%(1<<8)]--]=v[i];
for(int i=0;i<(1<<8);i++) p[i]=0;
for(int i=1;i<=N;i++) v[i]=au[i];
}
for(int i=1;i<=N;i+=10) out<<v[i]<<' ';
return 0;
}