Pagini recente » Cod sursa (job #1938610) | Cod sursa (job #2860162) | Cod sursa (job #1959560) | Cod sursa (job #2554356) | Cod sursa (job #2769378)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("sdo.in");
ofstream fout ("sdo.out");
vector <int> v;
int n, k, pivot, nr, ans;
int QS (int st, int dr){
if (st < dr){
int mij = (st + dr) / 2;
pivot = v [mij];
swap (v [mij], v [dr]);
int ff = st, ind = st;
while (ind < dr){
if (v [ind] < pivot)
swap(v [ff++], v [ind]);
ind ++;
}
swap (v [ff], v [dr]);
if (k < ff) return QS (st, ff - 1);
else if (k > ff) return QS (ff + 1, dr);
else return v [ff];
}
else return v [st];
}
int main (){
fin >> n >> k; k --;
for (int i = 0; i < n; i ++){
fin >> nr;
v.push_back (nr);
}
ans = QS (0, n - 1);
fout << ans << '\n';
return 0;
}