Cod sursa(job #2430720)

Utilizator Briana_NeaguNeagu Briana Briana_Neagu Data 15 iunie 2019 22:54:57
Problema Radix Sort Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>
#define maxim  10000003
using namespace std;

ifstream f("radixsort.in");
ofstream g("radixsort.out");

int v[maxim];
int n,a,b,c;
int k;
int aux[260],poz[maxim];

int valby(int x)
{
    return ((x>>(8*k))&255); //valoare byte
}

int main()
{
   f>>n>>a>>b>>c;
   v[0]=b;
   for (int i=1;i<n;i++)
       v[i]=(1LL*a*v[i-1]+b)%c;

   for (k=0; k<= 3 ; k++)
   {
       memset(aux,0,sizeof(aux));
       for (int i=0;i<n ;i++)  aux[valby(v[i])]++;
       for (int i=1;i<256; i++) aux[i]+=aux[i-1];
       for (int i=n-1; i>= 0 ; i-- ) poz[--aux[valby(v[i])]]=v[i];
       for (int i=0; i<n ;i++) v[i]=poz[i];

   }
   for (int i=0 ; i < n ; i+=10)
       g<<v[i]<<" ";

}