Cod sursa(job #3178252)

Utilizator GoreaRaresGorea Rares-Andrei GoreaRares Data 1 decembrie 2023 15:15:20
Problema Radix Sort Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>

using namespace std;

int v[10000001];

void Sort(int v[], int l, int r, int b)
{
    if(l >= r || b == -1)
    {
        return;
    }
    int i, j, aux;
    for(i = l, j = l; i <= r; i++)
    {
        if((v[i] & (1 << b)) == 0)
        {
            aux = v[i];
            v[i] = v[j];
            v[j] = aux;
            j++;
        }
    }
    Sort(v, l, j - 1, b - 1);
    Sort(v, j, r, b - 1);
}

int main()
{
    ifstream cin("radixsort.in");
    ofstream cout("radixsort.out");
    int n, a, b, c, i;
    cin >> n >> a >> b >> c;
    v[1] = b;
    for(i = 2; i <= n; i++)
    {
        v[i] = (a * v[i - 1] + b) % c;
    }
    Sort(v, 1, n, 30);
    for(i = 1; i <= n; i += 10)
    {
        cout << v[i] << " ";
    }
    return 0;
}