Pagini recente » Cod sursa (job #667968) | Cod sursa (job #2074713) | Cod sursa (job #1145791) | Cod sursa (job #295946) | Cod sursa (job #2670549)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int a[3000003], n, k;
int Pivot(int st, int dr)
{
int i, j, piv;
j=(st+dr)/2;
swap(a[j], a[st]);
piv = a[st];
j = st;
for (i = st + 1; i <= dr; i++)
if (a[i] <= piv)
{
j++;
swap(a[i], a[j]);
}
swap(a[st], a[j]);
return j;
}
int Cauta(int st, int dr)
{
int p = Pivot(st, dr);
if (p==k) return a[p];
if (p<k) return Cauta(p+1, dr);
else return Cauta(st, p-1);
}
void Citire()
{
fin >> n >> k;
for (int i = 1; i <= n; i++)
fin >> a[i];
}
int main()
{
Citire();
fout << Cauta(1, n);
return 0;
}