Cod sursa(job #1231279)

Utilizator RaduGabriel2012Dinu Radu RaduGabriel2012 Data 20 septembrie 2014 10:47:18
Problema Radix Sort Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
 vector <int> v[1<<16];
 int n,aa,b,c,a[10000005];
int main()
{ int i,j,k;
    f>>n>>aa>>b>>c;

      a[1]=b;
      v[b-((b>>16)<<16)].push_back(b);

    for(i=2;i<=n;i++)
     { a[i]=((long long)aa*a[i-1]+b)%c;
       v[a[i]-((a[i]>>16)<<16)].push_back(a[i]);
     }
      k=0;

      for(i=0;i<(1<<16);i++)
       {
        for(j=0;j<v[i].size();j++)
         {k++;a[k]=v[i][j];}

       }

         vector<int>().swap(v[1<<16]);

      for(i=1;i<=n;i++)
       v[a[i]>>16].push_back(a[i]);

    return 0;
}