Cod sursa(job #3326635)

Utilizator Andreea3425Diaconu Andreea Andreea3425 Data 29 noiembrie 2025 18:04:04
Problema Statistici de ordine Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>

using namespace std;

#define N 3000000

int v[N+1];

void quicks(int beg, int en, int k){
    int b, e, piv;

    b = beg;
    e = en;
    piv = v[(b + e) / 2];

    while (v[b] < piv)
        b++;

    while (v[e] > piv)
        e--;

    while (b < e){
        swap (v[b], v[e]);

        do
            b++;
        while (v[b] < piv);

        do
            e--;
        while (v[e] > piv);
    }

    if (beg < e && k <= e)
        quicks(beg, e, k);

    else if (e + 1 < en)
        quicks(e + 1, en, k);
}

int main()
{
    ifstream cin ("sdo.in");
    ofstream cout ("sdo.out");

    int n, k, i;

    cin >> n >> k;

    for (i=1; i<=n; i++)
        cin >> v[i];

    quicks(1, n, k);
    for (i=1; i<=n; i++)
        if (i == k)
            cout << v[i] << ' ';
    return 0;
}