Mai intai trebuie sa te autentifici.
Cod sursa(job #1789281)
| Utilizator | Data | 26 octombrie 2016 20:50:38 | |
|---|---|---|---|
| Problema | Heapuri | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.89 kb |
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(int &a, int&b){
return (a>b);
}
int main()
{
bool sters[1000000001]={0};
int o[200001]={0};
vector <int> v;
int i, j, n, cr, nr, lg=0;
freopen ("heapuri.in", "r", stdin);
freopen ("heapuri.out", "w", stdout);
scanf("%d ", &n);
for(i=1;i<=n;i++){
scanf("%d", &cr);
if(cr==1){
scanf("%d", &nr);
o[++lg]=nr;
v.push_back(nr);
push_heap(v.begin(), v.end(), cmp);
}
if(cr==2){
scanf("%d", &nr);
sters[o[nr]]=true;
}
if(cr==3){
while(sters[v.front()]==true){
pop_heap(v.begin(),v.end(),cmp);
v.pop_back();
}
printf("%d\n", v.front());
}
}
}
