Cod sursa(job #3343643)

Utilizator ValiAntonieqxcfds ValiAntonie Data 27 februarie 2026 22:48:24
Problema Statistici de ordine Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("sdo.in");
ofstream fout("sdo.out");

int quicksort(vector<int>& v, int st, int dr, int k){
    if (st == dr)
        return v[st];
    int pivot = st + rand() % (dr - st + 1);
    int n = v.size();
    swap(v[pivot], v[n-1]);
    int p = 0;
    for (int i = 0; i < n; i++){
        if (v[i] < v[n-1]){
            swap(v[p], v[i]);
            p++;
        }
    }
    swap(v[p], v[n-1]);
    if (k == p)
        return v[p];
    else if (k < p)
        return quicksort(v, st, p, k);
    else
        return quicksort(v, p + 1, dr, k);
}



int main(){
int n, k;
fin>>n>>k;
int x;
vector<int> v;
for (int i = 0; i < n; i++){
    fin>>x;
    v.push_back(x);
}
k--;
int val = quicksort(v, 0, n - 1, k);
fout << val;
    return 0;
}