Pagini recente » Cod sursa (job #1068715) | Cod sursa (job #90568) | Cod sursa (job #794694) | Cod sursa (job #131999) | Cod sursa (job #2750630)
#include <bits/stdc++.h>
using namespace std;
const string filename = "mergeheap";
ifstream fin(filename + ".in");
ofstream fout(filename + ".out");
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/priority_queue.hpp>
using namespace __gnu_pbds;
int n, t;
int main()
{
short op;
int x, y;
fin >> n >> t;
vector< __gnu_pbds::priority_queue<int, less<int>, pairing_heap_tag> > q(n + 1);
while (t--)
{
fin >> op;
if (op == 1)
{
fin >> x >> y;
q[x].push(y);
}
else if (op == 2)
{
fin >> x;
fout << q[x].top() << '\n';
q[x].pop();
}
else
{
fin >> x >> y;
q[x].join(q[y]);
}
}
fin.close();
fout.close();
return 0;
}