Cod sursa(job #3252605)

Utilizator ninja_legend_11Vlad Marin-Perianu ninja_legend_11 Data 30 octombrie 2024 11:14:16
Problema Sortare prin comparare Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>

using namespace std;

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

uint32_t n, i, j, x;
vector<uint32_t> v;

uint32_t Hoare(uint32_t st, uint32_t dr)
{
    uint32_t pivot = v[dr];
    i = st-1;
    for(j = st; j < dr; j++)
    {
        if(v[j] <= pivot)
        {
            i++;
            swap(v[i], v[j]);
        }
    }
    swap(v[i+1], v[dr]);
    return i+1;
}

void Sort(uint32_t st, uint32_t dr)
{
    if(st < dr)
    {

        x = Hoare(st, dr);
        Sort(st, x-1);
        Sort(x+1, dr);
    }
}

int main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(nullptr);
    fout.tie(nullptr);
    fin >> n;
    for(i=0; i < n; i++)
    {
        fin >> x;
        v.push_back(x);
    }
    Sort(0, n-1);
    for(auto f : v) fout << f << ' ';
}