Cod sursa(job #2491366)

Utilizator xXoctavianXxStanescu Matei Octavian xXoctavianXx Data 12 noiembrie 2019 13:48:50
Problema Radix Sort Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("radixsort.in");
ofstream fout("radixsort.out");

int A,B,C,N;
vector<int> v;


int main()
{
    fin>>N>>A>>B>>C;
    v.resize(N);
    vector<int> a1[256];
    v[0]=B;
    for(int i=1; i<N; i++)
    {
        v[i]=(A * v[i-1] + B) % C;
    }
    int x=1;
    for(int i=0; i <= 3; i++)
    {
        for(int j=0; j<N; j++)
        {
            int y=v[j]/x%256;
            a1[y].push_back(v[j]);
        }
        v.clear();
        for(int j=0; j<256; j++)
        {
            if(a1[j].size()!=0)
            {
                for(int e=0; e<a1[j].size(); e++)
                {
                    v.push_back(a1[j][e]);
                }
            }
            a1[j].clear();
        }
        x*=256;
    }
    //sort(v.begin(), v.end());

    for(int i=0; i<N; i+=10)
    {
        fout<<v[i]<<" ";
    }
    return 0;
}