Cod sursa(job #3293145)
Utilizator | Data | 10 aprilie 2025 14:08:40 | |
---|---|---|---|
Problema | Heapuri cu reuniune | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 1.08 kb |
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fcin("mergeheap.in");
ofstream fout("mergeheap.out");
priority_queue <int> q[250];
int c,x,m,a,b,n,t;
int main()
{
fcin>>n>>t;
while(t--)
{
fcin>>c;
if(c==1)
{
fcin>>m>>x;
q[m].push(x);
}
if(c==2)
{
fcin>>m;
if(!q[m].empty())
{
fout<<q[m].top()<<'\n';
q[m].pop();
}
}
if(c==3)
{
fcin>>a>>b;
if(q[a].size()>q[b].size())
{
while(!q[b].empty())
{
q[a].push(q[b].top());
q[b].pop();
}
}
else
{
swap(q[a], q[b]);
while(!q[b].empty())
{
q[a].push(q[b].top());
q[b].pop();
}
}
}
}
return 0;
}