#include <stdio.h>
#include <stdlib.h>
#define MAX 1000
void swap(int* a, int* b) {
int t = *a;
*a = *b;
*b = t;
}
int partition(int arr[], int low, int high) {
int pivot = arr[high];
int i = low;
for (int j = low; j < high; j++) {
if (arr[j] <= pivot) {
swap(&arr[i], &arr[j]);
i++;
}
}
swap(&arr[i], &arr[high]);
return i;
}
int quickSelect(int arr[], int low, int high, int k) {
if (low <= high) {
int pi = partition(arr, low, high);
if (pi == k)
return arr[pi];
else if (pi > k)
return quickSelect(arr, low, pi - 1, k);
else
return quickSelect(arr, pi + 1, high, k);
}
return -1;
}
int main() {
int n, k;
if (n <= 0) return 0;
int arr[MAX];
for (int i
= 0; i
< n
; i
++) scanf("%d", &arr
[i
]);
if (k <= 0 || k > n) {
return 0;
}
printf("%d\n", quickSelect
(arr
, 0, n
- 1, k
- 1)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgTUFYIDEwMDAKCnZvaWQgc3dhcChpbnQqIGEsIGludCogYikgewogICAgaW50IHQgPSAqYTsKICAgICphID0gKmI7CiAgICAqYiA9IHQ7Cn0KCmludCBwYXJ0aXRpb24oaW50IGFycltdLCBpbnQgbG93LCBpbnQgaGlnaCkgewogICAgaW50IHBpdm90ID0gYXJyW2hpZ2hdOwogICAgaW50IGkgPSBsb3c7CgogICAgZm9yIChpbnQgaiA9IGxvdzsgaiA8IGhpZ2g7IGorKykgewogICAgICAgIGlmIChhcnJbal0gPD0gcGl2b3QpIHsKICAgICAgICAgICAgc3dhcCgmYXJyW2ldLCAmYXJyW2pdKTsKICAgICAgICAgICAgaSsrOwogICAgICAgIH0KICAgIH0KICAgIHN3YXAoJmFycltpXSwgJmFycltoaWdoXSk7CiAgICByZXR1cm4gaTsKfQoKaW50IHF1aWNrU2VsZWN0KGludCBhcnJbXSwgaW50IGxvdywgaW50IGhpZ2gsIGludCBrKSB7CiAgICBpZiAobG93IDw9IGhpZ2gpIHsKICAgICAgICBpbnQgcGkgPSBwYXJ0aXRpb24oYXJyLCBsb3csIGhpZ2gpOwoKICAgICAgICBpZiAocGkgPT0gaykKICAgICAgICAgICAgcmV0dXJuIGFycltwaV07CiAgICAgICAgZWxzZSBpZiAocGkgPiBrKQogICAgICAgICAgICByZXR1cm4gcXVpY2tTZWxlY3QoYXJyLCBsb3csIHBpIC0gMSwgayk7CiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gcXVpY2tTZWxlY3QoYXJyLCBwaSArIDEsIGhpZ2gsIGspOwogICAgfQogICAgcmV0dXJuIC0xOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBuLCBrOwogICAgc2NhbmYoIiVkIiwgJm4pOwoKICAgIGlmIChuIDw9IDApIHJldHVybiAwOwoKICAgIGludCBhcnJbTUFYXTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSBzY2FuZigiJWQiLCAmYXJyW2ldKTsKCiAgICBzY2FuZigiJWQiLCAmayk7CgogICAgaWYgKGsgPD0gMCB8fCBrID4gbikgewogICAgICAgIHByaW50ZigiSW52YWxpZCBLXG4iKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBwcmludGYoIiVkXG4iLCBxdWlja1NlbGVjdChhcnIsIDAsIG4gLSAxLCBrIC0gMSkpOwogICAgcmV0dXJuIDA7Cn0=