Cod sursa(job #2833812)

Utilizator andreiiorgulescuandrei iorgulescu andreiiorgulescu Data 15 ianuarie 2022 18:58:12
Problema Radix Sort Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,A,B,C;
vector<int>ant[15],act[15];

int main()
{
    in >> n >> A >> B >> C;
    ant[1].push_back(B);
    for (int i = 1; i < n; i++)
    {
        int ela = (1ll * A * ant[1][i - 1] + B) % C;
        ant[1].push_back(ela);
    }
    int p10 = 1;
    while (ant[0].size() != n)
    {
        for (int j = 0; j <= 9; j++)
            act[j].clear();
        for (int j = 0; j <= 9; j++)
            for (int i = 0; i < ant[j].size(); i++)
                act[(ant[j][i] / p10) % 10].push_back(ant[j][i]);
        p10 *= 10;
        for (int j = 0; j <= 9; j++)
        {
            ant[j].clear();
            for (int i = 0; i < act[j].size(); i++)
                ant[j].push_back(act[j][i]);
        }
    }
    for (int i = 0; i < n; i += 10)
        out << act[0][i] << " ";
    return 0;
}