Cod sursa(job #2759893)

Utilizator Botnaru_VictorBotnaru Victor Botnaru_Victor Data 21 iunie 2021 12:33:33
Problema Radix Sort Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <bits/stdc++.h>
#define ui int

using namespace std;

ifstream f("radixsort.in");
ofstream g("radixsort.out");

vector<ui> radix(vector<ui> a)
{
    queue<ui> buckets[256];
    ui comp=255;
    for(int mod=0; mod<32; mod+=8)
    {
        for(int i=0; i<a.size(); i++)
        {
            buckets[(a[i]>>mod)&comp].push(a[i]);
        }
        int k=0;
        for(int i=0; i<=comp; i++)
        {
            while(!buckets[i].empty())
            {
                a[k++]=buckets[i].front();
                buckets[i].pop();
            }
        }
    }
    return a;
}

int main()
{
    long long n,a,b,c,nr;
    vector<ui> v;
    f>>n>>a>>b>>c;
    nr=b;
    v.push_back(nr);
    for(int i=1; i<n; i++)
    {
        nr=(a*nr+b)%c;
        v.push_back(nr);
    }
    v=radix(v);
    for(int i=0; i<n; i+=10)
    {
        g<<v[i]<<' ';
    }
    return 0;
}