Pagini recente » Cod sursa (job #2812754) | Cod sursa (job #309719) | Cod sursa (job #551742) | Cod sursa (job #1133922) | Cod sursa (job #2440835)
#include <bits/stdc++.h>
inline void print(int n) {
char snum[65];
int i = 0;
do {
snum[i++] = n % 10 + '0';
n /= 10;
} while (n);
--i;
while (i >= 0) {
putchar(snum[i--]);
}
putchar('\n');
}
inline int read() {
int n = 0;
char c = getchar_unlocked();
while (!('0' <= c && c <= '9')) {
c = getchar_unlocked();
}
while ('0' <= c && c <= '9') {
n = (n << 3) + (n << 1) + (c - '0');
c = getchar_unlocked();
}
return n;
}
// int partition(int a[], int left, int right, int x) {
// int i;
// for (i = left; i < right ; ++i) {
// if (a[i] == x) {
// break;
// }
// }
// std::swap(a[i], a[right]);
// i = left;
// for (int j = left ; j <= right - 1 ; ++j) {
// if (a[j] <= x) {
// std::swap(a[i], a[j]);
// ++i;
// }
// }
// std::swap(a[i], a[right]);
// return i;
// }
// int find_median(int a[], int n) {
// std::sort(a, a + n);
// return a[n >> 2];
// }
// int kth_element(int a[], int left, int right, int k) {
// if (k > 0 && k <= right - left + 1) {
// int n = right - left + 1;
// int i, median[(n + 4) / 5];
// for (i = 0 ; i < n / 5 ; ++i) {
// median[i] = find_median(a + left + 5 * i, 5);
// }
// if (5 * i < n) {
// median[i] = find_median(a + left + 5 * i, n % 5);
// ++i;
// }
// int meds = (i == 1) ? median[i - 1] : kth_element(median, 0, i - 1, i / 2);
// int position = partition(a, left, right, meds);
// if (position - left == k - 1) {
// return a[position];
// }
// if (position - left > k - 1) {
// return kth_element(a, left, position - 1, k);
// }
// return kth_element(a, position + 1, right, k - position + left - 1);
// }
// return INT_MAX;
// }
int main() {
freopen("sdo.in", "r", stdin);
freopen("sdo.out", "w", stdout);
int n, k;
n = read(); k = read(); int a[n];
for (int i = 0 ; i < n ; ++i) {
a[i] = read();
}
std::nth_element(a, a + k , a + n + 1);
print(a[k]);
return 0;
}