Pagini recente » Cod sursa (job #2949728) | Cod sursa (job #1912765) | Cod sursa (job #1816500) | Cod sursa (job #380910) | Cod sursa (job #1239579)
#include <fstream>
#define DIM 10000011
#define G 4
#define biti 8
#define cif (v[i]>>(p*biti))&(num-1)
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int n,A,B,C;
long long v[DIM],w[DIM],fr[1<<biti];
int main(void){
register int i,j,p;
f>>n>>A>>B>>C;
v[1]=B;
for(i=2;i<=n;i++)
v[i]=(A*v[i-1]+B)%C;
int num=1<<biti;
for(p=0;p<G;p++){
for(i=0;i<num;i++) fr[i]=0;
for(i=1;i<=n;i++) fr[cif]++;
for(i=1;i<num;i++) fr[i]+=fr[i-1];
for(i=n;i>0;i--) w[fr[cif]]=v[i],fr[cif]--;
for(i=1;i<=n;i++) v[i]=w[i];
}
for(i=1;i<=n;i+=10) g<<v[i]<<" ";
f.close();
g.close();
return 0;
}