Pagini recente » Cod sursa (job #3154259) | Cod sursa (job #403770) | Cod sursa (job #993005) | Cod sursa (job #1915039) | Cod sursa (job #1989949)
#include<cstdio>
using namespace std;
const int NMAX=10000005;
int v[NMAX],aux[NMAX],f[70],n;
bool sortare(long long p){
bool ok=0;
for(int i=0;i<=65;i++)
f[i]=0;
for(int i=1;i<=n;i++)
f[v[i]/p%64+1]++;
for(int i=1;i<=65;i++)
f[i]+=f[i-1];
if(f[65]-f[1]>0)
ok=1;
for(int i=1;i<=n;i++){
aux[f[v[i]/p%64]+1]=v[i];
f[v[i]/p%64]++;
}
for(int i=1;i<=n;i++)
v[i]=aux[i];
return ok;
}
void radixsort(long long p){
bool ok=sortare(p);
if(!ok)
return ;
p*=10;
radixsort(p);
}
int main(){
freopen("radixsort.in","r",stdin);
freopen("radixsort.out","w",stdout);
int a,b,c;
scanf("%d%d%d%d", &n, &a, &b, &c);
v[1]=b;
for(int i=2;i<=n;i++)
v[i]=(a*v[i-1]+b)%c;
radixsort(1);
for(int i=1;i<=n;i+=10)
printf("%d ", v[i]);
return 0;
}