#include <vector>
#include <iostream>
#include <queue>
#include <set>

using namespace std;

int main() {
	// priority_queue<int> q; // очередь с приоритетами (куча)
	// // q.add(10);
	// int x = 10;
	// q.push(-x); // max --> min     | O(logn)
	// q.top(); // max по приоритету  | O(logn)

	set<int> s; // logn
	s.insert(10);
	*s.begin(); // min
	*s.rbegin(); // max
	s.erase(s.begin()); // удалить min
	for (int x : s) // перебрать в порядке возрастания
		;
}

void add(int x) {
	a.push_back(x)
	for (int i = a.size() - 1; i > 1 && a[i / 2] > a[i]; i /= 2)
		swap(a[i / 2], a[i]);
}