Cod sursa(job #3288276)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 21 martie 2025 11:58:58
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n, i, a[500002], b[500002];

static inline void MergeSort(int st, int dr) {
    if(st < dr) {
        int mij = st + (dr - st) / 2;
        MergeSort(st     , mij);
        MergeSort(mij + 1, dr );

        int k = 0;
        int i = st;
        int j = mij + 1;
        while(i <= mij && j <= dr) {
            if(a[i] < a[j]) b[++k] = a[i++];
            else            b[++k] = a[j++];
        }

        while(i <= mij) b[++k] = a[i++];
        while(j <= dr ) b[++k] = a[j++];

        for(i = st, j = 1; i <= dr; i++, j++) a[i] = b[j];
    }
}

int main() {
    fin >> n;
    for(i = 1; i <= n; i++) fin >> a[i];
    MergeSort(1, n);

    for(i = 1; i <= n; i++) fout << a[i] << " ";

    return 0;
}