Cod sursa(job #3252609)

Utilizator ninja_legend_11Vlad Marin-Perianu ninja_legend_11 Data 30 octombrie 2024 11:35:52
Problema Sortare prin comparare Scor 80
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");

int32_t n, i, x;
vector<int32_t> v;

int32_t Hoare(int32_t st, int32_t dr)
{
    swap(v[(st+dr)/2], v[st]);
    x = 0;
    while(st < dr)
    {
        if(v[st] > v[dr])
        {
            swap(v[st], v[dr]);
            x = 1-x;
        }
        st += x;
        dr -= 1-x;
    }
    return st;
}

void Sort(int32_t st, int32_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 << ' ';
}