Cod sursa(job #2900173)

Utilizator AACthAirinei Andrei Cristian AACth Data 10 mai 2022 14:53:25
Problema Sortare prin comparare Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>
// #pragma GCC optimize("Ofast")
using namespace std;
 

// #define f cin
// #define g cout 
ifstream f("algsort.in");
ofstream g("algsort.out");
#define cin f
#define cout g
const int Max = 5e5 + 1;
int v[Max];

void QuickSort(int st, int dr)
{
    if(st < dr)
    {
        int m = st + ((rand()) % (dr-st+1));
        swap(v[st],v[m]);
        int i=st , j=dr, d = 0;
        while(i < j)
        {
            if(v[i] > v[j])
            {
                swap(v[i],v[j]);
                d ^= 1;
            }
            //in d stiu de unde am luat (0 sau 1)
            i+= d;
            j-= (d^1);
        }
        QuickSort(st,i - 1);
        QuickSort(i + 1,dr);
    }
}
int main()
{
    int n;
    srand(time(NULL));
    f>>n;
    for(int i=1;i<=n;i++)
        f>>v[i];
    QuickSort(1,n);
    for(int i=1;i<=n;i++)
        g<<v[i]<<' ';
 
 
    return 0;
}