Pagini recente » Cod sursa (job #191860) | Cod sursa (job #1107749) | Cod sursa (job #1123251) | Cod sursa (job #2336255) | Cod sursa (job #2918312)
#include <fstream>
#include <queue>
#include <bitset>
using namespace std;
ifstream cin("heapuri.in");
ofstream cout("heapuri.out");
struct Info {
int nr;
int cnt;
bool operator<(Info a) const {
return a.nr<nr;
}
};
int t;
int a,b;
priority_queue<Info> q;
bitset<(int)2e5+1> fr;
void read() {
cin>>t;
}
void solve() {
int cnt=1;
for(int x=1;x<=t;x++) {
cin>>a;
if(a==1) {
cin>>b;
q.push({b,cnt});
cnt++;
}
else if(a==2) {
cin>>b;
fr[b]=1;
}
else {
while(fr[q.top().cnt]==1) {
q.pop();
}
cout<<q.top().nr<<"\n";
}
}
}
int main() {
read();
solve();
return 0;
}