Pagini recente » Cod sursa (job #2784022) | Cod sursa (job #3202120) | Cod sursa (job #1368215) | Cod sursa (job #2621404) | Cod sursa (job #2938908)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("mergeheap.in");
ofstream fout("mergeheap.out");
int n;
priority_queue <int> pq[105];
int idx[105];
void r1()
{
int x,y;
fin>>x>>y;
x=idx[x];
pq[x].push(y);
}
void r2()
{
int x;
fin>>x;
x=idx[x];
int rez=pq[x].top();
fout<<rez<<'\n';
pq[x].pop();
}
void r3()
{
int a,b;
fin>>a>>b;
if(pq[idx[a]].size()<pq[idx[b]].size())
swap(idx[a],idx[b]);
while(pq[idx[b]].size()>0)
{
pq[idx[a]].push(pq[idx[b]].top());
pq[idx[b]].pop();
}
}
int main()
{
int q;
fin>>n>>q;
for(int i=1;i<=n;i++)
idx[i]=i;
while(q--)
{
int type;
fin>>type;
if(type==1)r1();
if(type==2)r2();
if(type==3)r3();
}
}