Cod sursa(job #2906675)

Utilizator VartonVarts Var Varton Data 26 mai 2022 23:40:36
Problema Radix Sort Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <cstdio>
#include <fstream>
using namespace std;

ifstream in("radixsort.in");
ofstream out("radixsort.out");
#define BASE  255
#define POW  8
#define NMax 10000010

int n,v[NMax],m[NMax],aux[BASE+1];
long long ii = 1;
int main()
{
    int i,j,a,b,c;
    in>>n>>a>>b>>c;
    v[1] = b;
    for(i = 2;i <= n; i++)
        v[i]=(ii * a * v[i-1] + b)% c;

    for(i = 0; i < 32; i+= POW)
    {
        for(j = 0; j <= BASE; j++)
            aux[j] = 0;
        for(j = 1; j <= n; j++)
            ++aux[(v[j]>>i)&BASE];
        for(j = 1; j <= BASE; j++)
            aux[j]+=aux[j-1];
        for(j = n; j > 0; j--)
            m[aux[(v[j]>>i)&BASE]--]=v[j];
        for(j = 1; j <= n; j++)
            v[j] = m[j];
    }

     for (int i = 1; i <= n; i += 10)
        out<<v[i]<<" ";
    out<<endl;
}