Pagini recente » Cod sursa (job #1414871) | Cod sursa (job #2190789) | Cod sursa (job #2921118) | Cod sursa (job #96970) | Cod sursa (job #982670)
Cod sursa(job #982670)
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 30000001
long M[MAXSIZE];
int n, k, size;
void insert(int x)
{
int p = size + 1;
while ((p >> 1) > 1 && M[p >> 1] > x)
{
M[p] = M[p >> 1];
p >>= 1;
}
M[p] = x;
if (size < k) ++size;
}
int main()
{
int i;
long x;
freopen("sdo.in", "r", stdin);
freopen("sdo.out", "w", stdout);
scanf("%d %d", &n, &k);
for (i = 1; i <= n; ++i)
{
scanf("%ld", &x);
insert(x);
}
i = 1;
while (i < k)
{
i <<= 1;
if (M[i + 1] > M[i])
i += 1;
}
if (i > k) i >>= 1;
printf("%ld\n", M[i]);
return 0;
}