Pagini recente » Cod sursa (job #675663) | Cod sursa (job #1933118) | Cod sursa (job #2982807) | Cod sursa (job #598334) | Cod sursa (job #3164634)
#include <iostream>
#include <fstream>
#include<set>
#include <unordered_set>
#include <queue>
using namespace std;
ifstream f("heapuri.in");
ofstream g("heapuri.out");
unordered_set <int> Hashuri;
priority_queue <pair<int,int>> pq;
int main()
{
/*
int n,op,nr;
f >> n;
for (int i = 1; i <= n; i++)
{
f >> op >> nr;
if (op == 1)
{
Hashuri.insert(nr);
}
else if (op == 2)
{
Hashuri.erase(nr);
}
else {
g << Hashuri.count(nr) << '\n';
}
}*/
int n, op, nr, totins = 0;
f >> n;
for (int i = 1; i <= n; i++)
{
f >> op;
if (op == 1)
{
f >> nr;
totins++;
pq.push({ -nr,totins });
}
else if (op == 2)
{
f >> nr;
priority_queue<pair<int, int>> save;
int found = 0;
while (!found && !pq.empty())
{
if (pq.top().second == nr)
{
found = 1;
}
else {
save.push(pq.top());
}
pq.pop();
}
while (!save.empty())
{
pq.push(save.top());
save.pop();
}
}
else {
g << -pq.top().first << '\n';
}
}
}