Pagini recente » Cod sursa (job #3288078) | Cod sursa (job #579500) | Cod sursa (job #2527693) | Cod sursa (job #1452465) | Cod sursa (job #2370334)
#include <cstdio>
#include <vector>
#include <set>
#define ADD 1
#define DELETE 2
#define MIN 3
using namespace std;
auto pairComparator = [](const pair<int, int>& first, const pair<int, int>& second) {
return first.first < second.first;
};
int N, operation, value;
vector<int> values;
set<pair<int, int>, decltype(pairComparator)> s(pairComparator);
int main() {
freopen("heapuri.in", "r", stdin);
freopen("heapuri.out", "w", stdout);
scanf("%d", &N);
while (N--) {
scanf("%d", &operation);
switch (operation) {
case ADD: {
scanf("%d", &value);
values.push_back(value);
s.insert(make_pair(value, values.size() - 1));
break;
}
case DELETE: {
scanf("%d", &value);
s.erase(make_pair(values[value - 1], value - 1));
break;
}
case MIN: {
printf("%d\n", (*s.begin()).first);
break;
}
}
}
return 0;
}