Pagini recente » Cod sursa (job #19074) | Cod sursa (job #430769) | Cod sursa (job #1268515) | Cod sursa (job #1942947) | Cod sursa (job #3220580)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("radixsort.in");
ofstream cout("radixsort.out");
int aux[10000005];
int v[10000005];
int c[10];
void csort(int n,int exp){
int i;
for(i=0;i<10;i++) c[i]=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 n,int max1){
int i;
for(i=1;max1/i>0;i*=10){
csort(n,i);
}
}
signed main()
{
int n,a,b,c,i,max1;long long a1;
cin>>n>>a>>b>>c;//v.resize(n);
v[0]=max1=b;
for(i=1;i<n;i++){
a1=(1ll*a*v[i-1]+1ll*b)%c;
v[i]=a1;max1=max(max1,v[i]);
}
fsort(n,max1);
for(i=0;i<n;i+=10) cout<<v[i]<<" ";
return 0;
}