Pagini recente » Cod sursa (job #685673) | Cod sursa (job #1247380) | Cod sursa (job #1746389) | Cod sursa (job #2908096) | Cod sursa (job #1268735)
#include <cstdio>
#include <algorithm>
using namespace std;
unsigned long int m[300000];
int n,k;
void asd(int st, int dr, int x)
{
int i=st, j=dr;
while(i<j)
{
if(m[i]>=m[x])
{
while(m[j]>m[x])
j--;
swap(m[i],m[j]);
if(i==x)
x=j;
if(j==x)
x=i;
j--;
}
i++;
}
if(x<k)
asd(x+1,dr,(x+1+dr)/2);
if(x>k)
asd(st,x-1,(st+x-1)/2);
}
int main()
{
freopen("sdo.in", "r", stdin);
freopen("sdo.out", "w", stdout);
scanf("%d %d ", &n, &k);
k--;
int i;
for(i=0;i<n;i++)
scanf("%d ", &m[i]);
asd(0,n-1,n/2);
printf("%d", m[k]);
return 0;
}