Cod sursa(job #3329093)

Utilizator Emre12Isleam Emre Emre12 Data 11 decembrie 2025 18:34:02
Problema Radix Sort Scor 30
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#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;
}