Pagini recente » Cod sursa (job #1961058) | Cod sursa (job #2538746) | Cod sursa (job #462208) | Rating tbp8500 (tbp8500) | Cod sursa (job #3160717)
#include <stdio.h>
#define ull unsigned long long
void rsort(ull v[], ull n, ull s, ull t[][2]) {
ull it[2];
it[0]=0;
it[1]=0;
for(ull i=0;i<n;++i) {
ull p=((ull)(1))&(v[i]>>s);
t[it[p]][p]=v[i];
++it[p];
}
for(ull i=0;i<it[0];++i)
v[i]=t[i][0];
for(ull i=0;i<it[1];++i)
v[it[0]+i]=t[i][1];
}
void radixsort(ull v[], ull n) {
ull t[n][2];
for(ull i=0;i<64;++i) {
rsort(v,n,i,t);
}
}
int main() {
FILE *fin=fopen("radixsort.in","r");
ull n,a,b,c;
fscanf(fin,"%llu %llu %llu %llu",&n,&a,&b,&c);
fclose(fin);
ull v[n];
*v=b;
for(ull i=1;i<n;++i) v[i]=(a*v[i-1]+b)%c;
radixsort(v,n);
FILE *fout=fopen("radixsort.out","w");
for(int i=0;i<n;i+=10) fprintf(fout,"%llu ",v[i]);
return 0;
}