Cod sursa(job #2763847)

Utilizator bluestorm57Vasile T bluestorm57 Data 17 iulie 2021 10:47:08
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
///I will be fast
///Today I'm gonna be a code hero
#include <bits/stdc++.h>

using namespace std;

inline void Boost(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
}
int v[500005],n;
int pivot(int lo, int hi){
    int piv_index = lo;
    int pivot = v[lo];
    while(lo < hi){
        while(lo < n && v[lo] <= pivot)
             lo++;
        while(hi >= 0 && v[hi] > pivot)
            hi--;
        if(lo < hi)
            swap(v[lo], v[hi]);
    }
    swap(v[hi], v[piv_index]);
    return hi;
}

void quickSort(int lo, int hi){
    if(lo < hi){
        int p = pivot(lo, hi);
        quickSort(lo, p - 1);
        quickSort(p + 1, hi);
    }
}

void solve(){
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    f >> n;
    for(int i = 0 ; i < n ; i++)
        f >> v[i];
    quickSort(0, n - 1);
    for(int i = 0 ; i < n ; i++)
        g << v[i] << " ";
}

int main(){
    Boost();
    int T = 1;
    //cin >> T;
    while(T--)
        solve();

    return 0;
}