Pagini recente » Cod sursa (job #2780535) | Cod sursa (job #708284) | Cod sursa (job #926384) | Cod sursa (job #2352588) | Cod sursa (job #2705706)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int v[3000003], n, k;
int QSort(int st, int dr)
{
int i, j, piv;
j = (st + dr) / 2;
swap(v[j], v[st]);
piv = v[st];
j = st;
for (i = st + 1; i <= dr; i++)
if (v[i] <= piv)
{
j++;
swap(v[i], v[j]);
}
swap(v[st], v[j]);
return j;
}
int Cauta(int st, int dr)
{
int p = QSort(st, dr);
if (p == k) return v[p];
if (p < k) return Cauta(p + 1, dr);
return Cauta(st, p - 1);
}
void Citire()
{
fin >> n >> k;
for (int i = 1; i <= n; i++)
fin >> v[i];
}
int main()
{
Citire();
fout << Cauta(1, n);
return 0;
}