Cod sursa(job #3175749)

Utilizator eu_stiu_infoFerseta Matei eu_stiu_info Data 26 noiembrie 2023 13:19:29
Problema Radix Sort Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#define MAXN 10000001

using namespace std;

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

long long n, a, b, c, v[MAXN],aux;

void sort(long long  v[], long long  st,long long  dr,long long  btn) {
    if (st>=dr || btn == -1)
        return;
    long long i,j;
    for (i=st,j=st; i<=dr; ++i)
        if((v[i] & (1 << btn))==0) {
            aux=v[j];
            v[j]=v[i];
            v[i]=aux;
            j++;
        }
    sort(v,st,j-1,btn-1);
    sort(v,j,dr,btn-1);
}

int i;

int main() {
    fin>>n>>a>>b>>c;
    v[1]=b;
    for (i=2; i<=n; i++)
        v[i] = ((a * v[i-1])%c + b) % c;
    sort(v,0,n,30);
    for (i=1; i<=n; i+=10)
        fout<<v[i]<<' ';
    return 0;
}