Cod sursa(job #1824782)
| Utilizator | Data | 8 decembrie 2016 13:47:22 | |
|---|---|---|---|
| Problema | Heapuri | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.7 kb |
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream in("heapuri.in");
ofstream out("heapuri.out");
int main() {
int k;
vector<int> v, z;
in >> k;
for(int i = 0; i < k; i++) {
int x;
in >> x;
if(x == 1) {
int y;
in >> y;
v.push_back(y);
z.push_back(y);
}
else if(x == 2) {
int a;
in >> a;
a--;
v.erase(find(v.begin(), v.end(), z[a]));
z.erase(find(z.begin(), z.end(), z[a]));
}
else {
make_heap(v.begin(), v.end());
out << v.back() << '\n';
}
}
return 0;
}