Pagini recente » Cod sursa (job #1108669) | Cod sursa (job #3281532) | Cod sursa (job #2794133) | Cod sursa (job #513705) | Cod sursa (job #1989951)
#include<cstdio>
#define B 64
using namespace std;
const int NMAX=10000005;
int v[NMAX],aux[NMAX],f[B+5],n;
bool sortare(long long p){
bool ok=0;
for(int i=0;i<=B+1;i++)
f[i]=0;
for(int i=1;i<=n;i++)
f[v[i]/p%B+1]++;
for(int i=1;i<=B;i++)
f[i]+=f[i-1];
if(f[B]-f[1]>0)
ok=1;
for(int i=1;i<=n;i++){
aux[f[v[i]/p%B]+1]=v[i];
f[v[i]/p%B]++;
}
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*=B;
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;
}