Cod sursa(job #2246604)

Utilizator theodor.moroianuTheodor Moroianu theodor.moroianu Data 27 septembrie 2018 11:37:56
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
using namespace std;

/// In blat we trust

int v[500010];
int v2[500010];
mt19937 rnd((long long) new char);

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

void Qsort(int, int);

void Qsort(int st, int dr)
{
    if (st == dr)
        return;

    int mij = (st + dr) / 2;
    thread s1(Qsort, st, mij);
    thread s2(Qsort, mij + 1, dr);
    s1.join();
    s2.join();

    merge(v + st, v + mij + 1, v + mij + 1, v + dr + 1, v2 + st);
    for (int i = st; i <= dr; i++)
        v[i] = v2[i];
}

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

    for (int i = 1; i <= n; i++)
        in >> v[i];

    Qsort(1, n);


    for (int i = 1; i <= n; i++)
        out << v[i] << ' ';
    return 0;
}