Cod sursa(job #2937934)

Utilizator Andrei_C123Costea Andrei Ioan Andrei_C123 Data 11 noiembrie 2022 14:11:12
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.07 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int M = 9917;
int aux[1000000], v[1000000];

void interclasare(int v[], int st, int dr){

    int m = (st + dr) / 2;
    int nri = 0, i = st, j = m + 1, k = st;

    while(i <= m && j <= dr){
        if(v[i] <= v[j]){
            aux[k++] = v[i++];
        }
        else{
            aux[k++] = v[j++];
        }
    }
    while(i <= m){
        aux[k++] = v[i++];
    }
    while(j <= dr){
        aux[k++] = v[j++];
    }

    for(int i = st; i <= dr; i++){
        v[i] = aux[i];
    }


}

void ms(int v[], int st, int dr){

    if(st == dr){
        return;
    }
    int m = (st + dr) / 2, nri = 0;
    ms(v, st, m), nri %= M;
    ms(v, m + 1, dr ), nri %= M;
    interclasare(v, st, dr), nri %= M;

}

int main()
{
    int n;
    fin>>n;

    for(int i = 1; i <= n; i++){
        fin>>v[i];
    }

    ms(v, 1, n);

    for(int i = 1; i <= n; i++){
        fout<<v[i]<<" ";
    }

    return 0;
}