Pagini recente » Cod sursa (job #1963550) | Cod sursa (job #2006814) | Regulament preONI 2007 | Cod sursa (job #311914) | Cod sursa (job #370979)
Cod sursa(job #370979)
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
#define MAX_N 3000005
int N, K, A[MAX_N];
ifstream fin ("sdo.in");
ofstream fout ("sdo.out");
void citire()
{
fin >> N >> K;
for(int i = 1; i <= N; ++i)
fin >> A[i];
make_heap(A+1, A+N+1, greater <int> ());
}
struct cmp
{
bool operator() (const int &a, const int &b)
{
return A[a] > A[b];
}
};
void solve()
{
priority_queue <int, vector <int>, cmp > Q;
Q.push(1);
for(int i = 1; i < K; ++i)
{
int k = Q.top();
Q.pop();
//fout << A[k] << "\n";
if(2*k <= N)Q.push(2*k);
if(2*k < N) Q.push(2*k+1);
}
fout << A[Q.top()];
}
int main()
{
citire();
solve();
}