Cod sursa(job #3132963)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 24 mai 2023 16:10:51
Problema Statistici de ordine Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("sdo.in");
ofstream fout("sdo.out");
int n, k, i, a[3000002];

static inline int pivot(int st, int dr) {
    int piv = a[st];
    while(st < dr) {
        while(st < dr && a[dr] >= piv) dr--;
        a[st] = a[dr];
        while(st < dr && a[st] <= piv) st++;
        a[dr] = a[st];
    }
    a[st] = piv;
    return st;
}

static inline void sortq(int st, int dr) {
    if(st >= dr) return;

    int piv = pivot(st, dr);
    if(piv > st + 1) sortq(st, piv - 1);
    if(dr > piv + 1) sortq(piv + 1, dr);
}

int main() {
    fin >> n >> k;
    for(i = 1; i <= n; i++) fin >> a[i];
    sortq(1, n);
    fout << a[k];

    return 0;
}