Cod sursa(job #2658156)
| Utilizator | Data | 13 octombrie 2020 12:58:51 | |
|---|---|---|---|
| Problema | Heapuri | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.85 kb |
#include <bits/stdc++.h>
using namespace std;
priority_queue <int, vector<int>, greater<int>> q;
map <int, int> toElim;
int lista[200001], vf;
ifstream in("heapuri.in");
ofstream out("heapuri.out");
int n;
int main()
{
in >> n;
for(int c, val; n; n--)
{
in >> c;
switch(c)
{
case 1:
in >> val;
lista[++vf] = val;
q.push(val);
break;
case 2:
in >> val;
toElim[lista[val]]++;
break;
case 3:
while(toElim[q.top()])
{
toElim[q.top()]--;
q.pop();
}
out << q.top() << '\n';
break;
}
}
return 0;
}
