Pagini recente » Cod sursa (job #3156906) | Cod sursa (job #1498129) | Istoria paginii runda/simulare.wellspecial2/clasament | Cod sursa (job #682068) | Cod sursa (job #1565607)
#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]=(1LL*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;
}