#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> heap = {1,3,5,7,9};
auto print = [&]() {
for (auto const & i : heap)
std::cout << i << ' ';
std::cout << '\n';
};
std::cout << "\nBefore make_heap\n";
print();
std::make_heap(heap.begin(), heap.end());
std::cout << "\nAfter make_heap\n";
print();
// add an element
heap.push_back(4);
std::push_heap(heap.begin(), heap.end());
std::cout << "\nAfter adding an element (4)\n";
print();
// remove an element
std::pop_heap(heap.begin(), heap.end());
heap.pop_back();
std::cout << "\nAfter removing an element\n";
print();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50IG1haW4oKSB7CglzdGQ6OnZlY3RvcjxpbnQ+IGhlYXAgPSB7MSwzLDUsNyw5fTsKCWF1dG8gcHJpbnQgPSBbJl0oKSB7CgkJZm9yIChhdXRvIGNvbnN0ICYgaSA6IGhlYXApCgkJICAgIHN0ZDo6Y291dCA8PCBpIDw8ICcgJzsKCQlzdGQ6OmNvdXQgPDwgJ1xuJzsKCX07CgkKCXN0ZDo6Y291dCA8PCAiXG5CZWZvcmUgbWFrZV9oZWFwXG4iOwoJcHJpbnQoKTsKCQoJc3RkOjptYWtlX2hlYXAoaGVhcC5iZWdpbigpLCBoZWFwLmVuZCgpKTsKCQoJc3RkOjpjb3V0IDw8ICJcbkFmdGVyIG1ha2VfaGVhcFxuIjsKCXByaW50KCk7CgkKCS8vIGFkZCBhbiBlbGVtZW50CgloZWFwLnB1c2hfYmFjayg0KTsKCXN0ZDo6cHVzaF9oZWFwKGhlYXAuYmVnaW4oKSwgaGVhcC5lbmQoKSk7CgkKCXN0ZDo6Y291dCA8PCAiXG5BZnRlciBhZGRpbmcgYW4gZWxlbWVudCAoNClcbiI7CglwcmludCgpOwoJCgkvLyByZW1vdmUgYW4gZWxlbWVudAoJc3RkOjpwb3BfaGVhcChoZWFwLmJlZ2luKCksIGhlYXAuZW5kKCkpOwoJaGVhcC5wb3BfYmFjaygpOwoJCglzdGQ6OmNvdXQgPDwgIlxuQWZ0ZXIgcmVtb3ZpbmcgYW4gZWxlbWVudFxuIjsKCXByaW50KCk7Cn0=