Cod sursa(job #2619114)

Utilizator jungleTUDOSE MIHAI-CRISTIAN jungle Data 26 mai 2020 23:50:47
Problema Radix Sort Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int v[100000001],vect[100000001];
void countSort(int dim, int byte)
{
    int fr[256] = {0},temp[256],i;
    for(i=0; i<dim; i++)
    {
        ++fr[(v[i] >> byte) & 255];
    }
    temp[0] = 0;
    for (i = 1; i < 256; i++)
    {
        temp[i] = temp[i-1] + fr[i-1];
    }
    for(i=0; i<dim; i++)
    {
        vect[temp[(v[i] >> byte) & 255]++] = v[i];
    }
    for(i=0; i<dim; i++)
    {
        v[i] = vect[i];
    }
}

void radixSort(int dim)
{
    int i;
    for(i=0; i<32; i+=8)
    {
        countSort(dim,i);
    }
}

int main()
{
    long long int n,a,b,c,i;
    f>>n>>a>>b>>c;
    v[0] = b;
    for(i=1; i<n; i++)
    {
        v[i] = (a*v[i-1]+b)%c;
    }
    radixSort(n);
    for(i=0; i<n; i+=10)
    {
        g<<v[i]<<" ";
    }
    return 0;
}