Pagini recente » Cod sursa (job #743357) | Cod sursa (job #3168786) | Cod sursa (job #2561113) | Cod sursa (job #1213198) | Cod sursa (job #2654503)
#include <iostream>
#include <fstream>
#define NMAX 3000005
using namespace std;
int v[NMAX], n, k;
int partition(int begin, int end) {
int p = v[begin], j = begin;
for (int i = begin + 1;i <= end;++i) {
if (v[i] <= p) swap(v[++j], v[i]);
}
swap(v[begin], v[j]);
return j;
}
int kth_elem(int k) {
--k;
int i = 0, j = n - 1;
while (true) {
int p = partition(i, j);
if (p == k)
return v[p];
if (p < k)
i = p + 1;
else j = p - 1;
}
}
int main() {
ifstream fin("sdo.in");
ofstream fout("sdo.out");
fin >> n >> k;
for (int i = 0;i < n;++i)
fin >> v[i];
fout << kth_elem(k);
return 0;
}