Cod sursa(job #2368176)

Utilizator cicero23catalin viorel cicero23 Data 5 martie 2019 14:25:54
Problema Radix Sort Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
vector <int> v;
queue <int> q[257];
int i,j,nr,a,b,c,n;
int main()
{
    f>>n>>a>>b>>c;
    v.push_back(b);
    for(i=1;i<n;i++)
        v.push_back(((a*v[i-1])%c+b)%c);
    for(i=0;i<=24;i+=8)
    {
        for(j=0;j<n;j++)
        {
            q[(v[j]>>i)&255].push(v[j]);
        }
        int nr=0;
        for(j=0;j<=255&&nr<n-1;j++)
        {
            while(!q[j].empty())
            {
                v[nr]=q[j].front();
                q[j].pop();
                nr++;
            }
        }

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