Pagini recente » Cod sursa (job #3299644) | Cod sursa (job #34523) | Cod sursa (job #442491) | Cod sursa (job #201502) | Cod sursa (job #3329093)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 10000000
long long v[MAXN];
void rsort(int st,int dr,int ub){
if(st >= dr || ub == -1)
return;
int aux,i,j;
for(i = st, j = st; i <= dr; i++){
if((v[i] & (1 << ub)) == 0){
aux = v[i];
v[i] = v[j];
v[j] = aux;
++j;
}
}
rsort(st,j-1,ub-1);
rsort(j,dr,ub-1);
}
int main()
{
FILE*fin;
FILE*fout;
fin = fopen("radixsort.in","r");
fout = fopen("radixsort.out","w");
long long n,i,a,b,c;
fscanf(fin,"%lld %lld %lld %lld",&n,&a,&b,&c);
v[0] = b;
for(i = 1; i < n;i++){
v[i] = 1LL * ((a * v[i-1] + b) % c);
}
rsort(0,n-1,31);
for(i = 0; i < n;i+=10){
fprintf(fout,"%d ",v[i]);
}
return 0;
}