Pagini recente » Cod sursa (job #1701877) | Cod sursa (job #2564957) | Cod sursa (job #1242020) | Cod sursa (job #805151) | Cod sursa (job #2931192)
#include <fstream>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
static void order_statistic(int x[], int l, int r, int K) {
if (l >= r) return;
int p = l + rand() % (r - l + 1);
swap(x[l], x[p]);
int i = l, j = r, d = 1;
while (i < j) {
if (x[i] > x[j]) {
swap(x[i], x[j]);
d = 1 - d;
}
i += d;
j -= 1 - d;
}
if (i == K) return;
else if (i > K)
order_statistic(x, l, i - 1, K);
else order_statistic(x, l + 1, r, K);
}
constexpr int MAX_N = 3000005;
int N, K, i, x[MAX_N];
int main() {
fin >> N >> K;
for (i = 1; i <= N; i++)
fin >> x[i];
order_statistic(x, 1, N, K);
fout << x[K];
fin.close();
fout.close();
return 0;
}