Pagini recente » Cod sursa (job #240865) | Cod sursa (job #646981) | Cod sursa (job #935063) | Cod sursa (job #3251868) | Cod sursa (job #371171)
Cod sursa(job #371171)
#include <fstream>
using namespace std;
#define MAX_N 3000005
ifstream fin ("sdo.in");
ofstream fout ("sdo.out");
int N, K, H[MAX_N];
int main()
{
fin >> N >> K;
for(int i = 1; i <= K; ++i)
{
int x;
fin >> x;
H[i] = x;
}
for(int i = 1; i <= K; ++i)
{
int j = i;
while((j >> 1) && H[j] > H[j >> 1])
{
swap(H[j], H[j >> 1]);
j >>= 1;
}
}
for(int i = K+1; i <= N; ++i)
{
int x;
fin >> x;
if(x < H[1])
{
H[1] = x;
int k = 1;
while(1)
{
int j = 2*k;
if(j > K) break;
if(j+1 <= K && H[j+1] > H[j]) ++j;
if(H[k] > H[j]) break;
swap(H[k], H[j]);
k = j;
}
}
}
fout << H[1];
}