Pagini recente » Cod sursa (job #2977733) | Cod sursa (job #2422374) | Cod sursa (job #1919253) | Cod sursa (job #1015875) | Cod sursa (job #3142095)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("heapuri.in");
ofstream cout("heapuri.out");
struct elem{
int val;
bool operator <(const elem &other)const{
return val > other.val;
}
};
priority_queue <elem> pq, pq_sterse;
vector <int> v(200005);
int main() {
int n, k = 1;
cin >> n;
for(int i = 1; i <= n; i++){
int c;
cin >> c;
if(c == 1)
{
elem x;
cin >> x.val;
pq.push(x);
v[k++] = x.val;
}
else if(c == 2)
{
int p;
cin >> p;
elem x;
x.val = v[p];
pq_sterse.push(x);
while(pq.top().val == pq_sterse.top().val and !pq.empty()){
pq.pop();
pq_sterse.pop();
}
}
else
{
cout << pq.top().val << '\n';
}
}
return 0;
}