Cod sursa(job #2943698)

Utilizator SkaduweePavel Bogdan Stefan Skaduwee Data 21 noiembrie 2022 15:43:07
Problema Statistici de ordine Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
#include <cstdlib>

using namespace std;

#define NMAX 500000
int v[NMAX], h[NMAX];
void QSORT(int st, int dr)
{
    int s = st, d = dr;
    int pivot = v[st + rand()%(dr - st + 1)];

    while (v[s] > pivot)
        s++;
    while (v[d] < pivot)
        d--;
    while (s < d)
    {
        swap (v[s], v[d]);

        do
        s++;
        while (v[s] > pivot);

        do
        d--;
        while (v[d] < pivot);
    }

    if (st < d)
    QSORT(st, d);
    if (d+1 < dr)
    QSORT(d+1, dr);
}

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

    int n;
    fin >> n;

    for (int i = 0; i < n; i++)
        fin >> v[i];

    QSORT(0, n-1);

    for (int i = n-1; i >= 0; i--)
        fout << v[i] << " ";
}