Pagini recente » Cod sursa (job #44436) | Cod sursa (job #3211306) | Cod sursa (job #1460174) | Cod sursa (job #2983471) | Cod sursa (job #1759200)
#include <algorithm>
#include <string>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <stack>
using namespace std;
vector<int> nums;
void qsort(int lf, int rt, int k) {
int i = lf, j = rt, p = nums[(lf + rt)/2];
while (i < j) {
while (nums[i] < p) ++i;
while (nums[j] > p) --j;
if (i <= j) {
swap(nums[i], nums[j]);
i++;
--j;
}
}
if (i < rt && k >= i) qsort(i, rt, k);
if (j > lf && k <= j) qsort(lf, j, k);
}
int main() {
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
int n, k;
scanf("%d %d", &n, &k);
nums.resize(n + 1);
for (int i = 1; i <= n; ++i) {
scanf("%d", &nums[i]);
}
qsort(1, n, k);
printf("%d\n", nums[k]);
return 0;
}