Cod sursa(job #2948049)

Utilizator biancaivascuBianca Ivascu biancaivascu Data 27 noiembrie 2022 09:33:16
Problema Radix Sort Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>

using namespace std;

#define MaxN 10000000

int v[MaxN];

void radixsort(int st, int dr, int bit)
{
    if(st>=dr || bit==-1)
        return;
    int i,j;
    j=st;
    for(i=st; i<=dr; i++)
    {
        if((v[i]&(1<<bit))==0)
        {
            swap(v[i], v[j]);
            j++;
        }
    }
    radixsort(st, j-1, bit-1);
    radixsort(j, dr, bit-1);
}
int main()
{
    ifstream in("radixsort.in");
    ofstream out("radixsort.out");
    int n, a, b, c, i, j;
    in>>n>>a>>b>>c;
    v[0]=b;
    for(i=1; i<n; i++)
    {
        v[i]=(a*v[i-1]%c+b)%c;
    }
    radixsort(0, n-1, 30);
    for(i=0; i<n; i+=10)
    {
        out<<v[i]<<" ";
    }


    return 0;
}