Pagini recente » Cod sursa (job #3285614) | Cod sursa (job #3291336) | Cod sursa (job #3286479) | Cod sursa (job #158625) | Cod sursa (job #370977)
Cod sursa(job #370977)
#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";
Q.push(2*k);
Q.push(2*k+1);
}
fout << A[Q.top()];
}
int main()
{
citire();
solve();
}