#include<iostream>
#include<string>
#include<vector>
#include<iterator>
#include <algorithm>
using namespace std;
template <class elemtype>
void HeapAdjust (vector<elemtype> &array, int s, int m)
{
int temp,j;
temp = array[s];
for (j=2*s;j<=m;j*=2)
{
if (j<m && array[j]<array[j+1])
++j;
if (temp>=array[j])
break;
array[s] = array[j];
s = j;
}
array[s] = temp;
}
template <class elemtype>
class priority_queue_
{
private:
public:
vector<elemtype> data_vec;
priority_queue_()
{
data_vec = vector<elemtype>();
data_vec.push_back(0);
}
bool empty()
{
return (data_vec.size()<=1);
}
size_t size()
{
return data_vec.size()-1;
}
elemtype top()
{
return data_vec[1];
}
#include<string>
#include<vector>
#include<iterator>
#include <algorithm>
using namespace std;
template <class elemtype>
void HeapAdjust (vector<elemtype> &array, int s, int m)
{
int temp,j;
temp = array[s];
for (j=2*s;j<=m;j*=2)
{
if (j<m && array[j]<array[j+1])
++j;
if (temp>=array[j])
break;
array[s] = array[j];
s = j;
}
array[s] = temp;
}
template <class elemtype>
class priority_queue_
{
private:
public:
vector<elemtype> data_vec;
priority_queue_()
{
data_vec = vector<elemtype>();
data_vec.push_back(0);
}
bool empty()
{
return (data_vec.size()<=1);
}
size_t size()
{
return data_vec.size()-1;
}
elemtype top()
{
return data_vec[1];
}