Pagini recente » Cod sursa (job #359979) | Cod sursa (job #2764640) | Cod sursa (job #190951) | Cod sursa (job #1491679) | Cod sursa (job #2670548)
#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);
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;
}