#include <cstdio>
int qsort(
int* A,
int left,
int right,
int k){
int i = left, j = right -
1;
int tmp = A[left];
while(i < j){
while(A[j] >= tmp && i < j) j--;
if(i < j) A[i++] = A[j];
while(A[i] <= tmp && i < j) i++;
if(i < j) A[i] = A[j--];
}
A[i] = tmp;
int p = right - i -
1;
if(p == k-
1)
return tmp;
if(p < k-
1)
return qsort(A, left, i -
1, k - p -
1);
if(p > k-
1)
return qsort(A, i +
1, right, k);
}
int main(){
int n, k;
while(
scanf(
"%d%d", &n, &k)==
2){
int* A =
new int[n+
1];
for(
int i =
0; i < n; i++)
scanf(
"%d", &A[i]);
int ans = qsort(A,
0, n, k);
printf(
"%d\n", ans);
}
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-662638.html