#include <fstream>
#include <vector>
#include <utility>
std::ifstream in("heapuri.in");
std::ofstream out("heapuri.out");
using std::swap;
template <class T>
class Heap {
private:
std::vector<T> elements;
public:
inline T const& get_minimum() const {
return elements[0];
}
inline T&& get_minimum() {
return elements[0];
}
void delete_idx(unsigned idx) {
unsigned idx2 = this->elements.size() - 1;
swap(this->elements[idx], this->elements[idx2]);
this->elements.pop();
while(this->elements[idx >> 1] < this->elements[idx]) {
swap(this->elements[idx >> 1], this->elements[idx]);
idx = idx >> 1;
}
while(this->elements.size() < idx * 2 ) {
}
...
}
void insert(T&& elem) {
unsigned idx = this->elements.size();
this->elements.push_back(elem);
while(this->elements[idx >> 1] < this->elements[idx]) {
swap(this->elements[idx >> 1], this->elements[idx]);
idx = idx >> 1;
}
}
}
int main()
{
return 0;
}