Cod sursa(job #2433679)

Utilizator CybotStancila Ionut-Marian Cybot Data 28 iunie 2019 16:09:24
Problema Radix Sort Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int k, c, d[10], pas=1, N, A, B, C, p=11, v[10000001], a[10][10000001];
int main()
{
    f>>N>>A>>B>>C;
    v[1]=B;
    for (int i=2;i<=N;i++)
    {
        v[i]=(A*v[i-1]+B)%C;
    }
    p=1;
    while (pas)
    {
        pas=0;
        for (c=0;c<=9;c++) d[c]=0;
        for (int i=1;i<=N;i++)
        {
            c=v[i]/p%10;
            if (v[i]/(p*10)) pas=1;
            d[c]++;
            a[c][d[c]]=v[i];
        }
        k=0;
        for(c=0;c<=9;c++) for(int i=1;i<=d[c];i++)v[++k]=a[c][i];
        p*=10;
    }
    for (int i=1;i<=k;i+=10)
    g<<v[i]<<" ";
    return 0;
}