Cod sursa(job #2748115)

Utilizator mihaicrisanMihai Crisan mihaicrisan Data 29 aprilie 2021 22:32:48
Problema Statistici de ordine Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;

int n, k;
unsigned int v[3000005];

int poz (int st, int dr){
    int mij, t = 0;
    mij = st  + rand() % (dr - st + 1);
    swap(v[mij] , v[st]);
    while (st < dr){
        if (v[st] > v[dr]){
            swap(v[st] , v[dr]);
            t = 1 - t;
        }
        st += t;
        dr -= 1 - t;
    }
    return st;
}

void quickSort (int st, int dr){
    int p;
    if (st < dr){
        p = poz(st, dr);
        quickSort(st, p - 1);
        quickSort(p + 1, dr);
    }
}

int main(){
    ifstream cin ("sdo.in");
    ofstream cout("sdo.out");
    cin >> n >> k;
    for (int i = 1; i <= n; i++)
        cin >> v[i];
    srand((time(0)));
    quickSort(1, n);
    cout << v[k];
    return 0;
}