Cod sursa(job #2623375)

Utilizator paulconst1Constantinescu Paul paulconst1 Data 3 iunie 2020 00:38:49
Problema Radix Sort Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <vector>

using namespace std;

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

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

void cit()
{
    fin>>N>>A>>B>>C;
    v.push_back(B);
    for (int i=2; i<=N; i++)
        v.push_back((A * v.back() + B) % C);
}

void sol(int i)
{
    vector <int> a[256];
    for (int j=0; j<N; j++)
        a[255&(v[j]>>i*8)].push_back(v[j]);
    v.clear();
    for (int j=0; j<256; j++)
    {
        for(int k=0; k<a[j].size(); k++)
            v.push_back(a[j][k]);
        a[j].clear();
    }
}

void afis()
{
    for (int i=0; i< v.size(); i+=10)
        fout<<v[i]<<' ';
}

int main()
{
    cit();
    for (int i=0; i<4; i++)
        sol(i);
    afis();
    return 0;
}