Pagini recente » Cod sursa (job #2461847) | Cod sursa (job #2556920) | Cod sursa (job #3269818) | Cod sursa (job #1529267) | Cod sursa (job #2609397)
#include <stdio.h>
#define NMAXX 10000001
int v[NMAXX],aux[NMAXX],poz[NMAXX],nr[10];
int main(){
FILE *fin,*fout;
int n,a,b,c,i,nrtot,x;
fin=fopen("radixsort.in", "r");
fout=fopen("radixsort.out", "w");
fscanf(fin, "%d%d%d%d", &n,&a,&b,&c);
v[0]=b;
for(i=1;i<n;i++)
v[i]=((long long)a*v[i-1]+b)%c;
nrtot=1;
for(x=0;x<11;x++){
for(i=0;i<10;i++)
nr[i]=0;
for(i=0;i<n;i++)
nr[v[i]/nrtot%10]++;
poz[0]=0;
for(i=1;i<10;i++)
poz[i]=poz[i-1]+nr[i-1];
for(i=0;i<n;i++)
aux[poz[v[i]/nrtot%10]++]=v[i];
for(i=0;i<n;i++)
v[i]=aux[i];
nrtot*=10;
}
fclose(fin);
for(i=0;i<n;i+=10)
fprintf(fout, "%d ", v[i]);
fclose(fout);
fprintf(fout, "\n");
return 0;
}