Pagini recente » Cod sursa (job #489959) | Cod sursa (job #3229384) | Cod sursa (job #2327839) | Cod sursa (job #1557267) | Cod sursa (job #2749229)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/priority_queue.hpp>
using namespace std;
using namespace __gnu_pbds;
ifstream fin("mergeheap.in");
ofstream fout("mergeheap.out");
int n, t, x, y, z;
int main()
{
fin >> n >> t;
vector<__gnu_pbds::priority_queue<int,less<int>, pairing_heap_tag> > q(n + 1);
while(t--)
{
fin >> x >> y;
if(x == 1)
{
fin >> z;
q[y].push(z);
}
else if(x == 2)
{
fout << q[y].top() << "\n";
q[y].pop();
}
else
{
fin >> z;
q[y].join(q[z]);
}
}
return 0;
}