Pagini recente » Cod sursa (job #2004659) | Cod sursa (job #1850896) | Cod sursa (job #2247494) | Cod sursa (job #538862) | Cod sursa (job #3343643)
#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;
}