Pagini recente » Cod sursa (job #2800236) | Cod sursa (job #146142) | Borderou de evaluare (job #2103669) | Rating Bologa Dragos (BologaDragos) | Cod sursa (job #3220571)
#include <fstream>
using namespace std;
ifstream cin("radixsort.in");
ofstream cout("radixsort.out");
void csort(int v[],int n,int exp){
int aux[n],i,c[10]={0};
for(i=0;i<n;i++)
c[(v[i]/exp)%10]++;
for(i=1;i<10;i++) c[i]+=c[i-1];
for(i=n-1;i>=0;i--){
aux[c[(v[i]/exp)%10]-1]=v[i];
c[(v[i]/exp)%10]--;
}
for(i=0;i<n;i++) v[i]=aux[i];
}
void fsort(int v[],int n,int max1){
int i;
for(i=1;max1/i>0;i*=10){
csort(v,n,i);
}
}
int main()
{
int n,a,b,c,i,max1;
cin>>n>>a>>b>>c;
int v[n];
v[0]=b;max1=v[0];
for(i=1;i<n;i++){
v[i]=(a*v[i-1]+b)%c;max1=max(max1,v[i]);
}
fsort(v,n,max1);
for(i=0;i<n;i+=10) cout<<v[i]<<" ";
return 0;
}