Cod sursa(job #2923643)

Utilizator Savu_Stefan_CatalinSavu Stefan Catalin Savu_Stefan_Catalin Data 17 septembrie 2022 10:44:22
Problema Radix Sort Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream in("radixsort.in");
ofstream out("radixsort.out");
int n,a,b,c,p,p2,v[10000005],i,j;
vector <int> cc[46345];
int main()
{
    in>>n>>a>>b>>c;
    v[1]=b;
    for (i=1;i<=n;++i)
      {v[i]=(a*v[i-1]+b)%c;}
    p=1;
    p2=46341;
    for (i=1;i<=2;++i)
    {
       for (j=n;j>=1;--j)
       {
          cc[v[j]/p%p2].push_back(v[j]);
       }
       v[0]=0;
       for (j=0;j<46341;++j)
       {
          while (cc[j].size())
          {
             v[++v[0]]=cc[j][cc[j].size()-1];
             cc[j].pop_back();
          }
       }
       p*=46341;
    }
    for (i=1;i<=n;i+=10)
      out<<v[i]<<" ";
    return 0;
}