Cod sursa(job #2898379)

Utilizator readyitzooDilirici Mihai readyitzoo Data 6 mai 2022 17:07:59
Problema Sortare prin comparare Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");

long long v[500002], u[500002];

void mergeSort(int left, int right)
{
    int mij = (left + right) / 2, i = left, j = mij + 1, k = left;

    if (left == right)
        return;

    mergeSort(left, mij);
    mergeSort(mij + 1, right);

    while (i <= mij || j <= right){
        if (j > right || (i <= mij && v[i] < v[j]))
            u[k++] = v[i++];
        else
            u[k++] = v[j++];
    }

    for (k = left; k <= right; k ++)
        v[k] = u[k];
}

int main() {
    long long n, i;
    f >> n;
    for (i = 0 ; i < n; i ++)
        f >> v[i];
    mergeSort(0, n-1);
    for (i = 0 ; i < n; i ++)
        g << v[i] <<" ";
    return 0;
}