Cod sursa(job #3304084)
| Utilizator | Data | 20 iulie 2025 13:15:20 | |
|---|---|---|---|
| Problema | Heapuri cu reuniune | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.81 kb |
#include <fstream>
#include <queue>
using namespace std;
ifstream in("mergeheap.in");
ofstream out("mergeheap.out");
int n, q;
priority_queue<int> pq[105];
int main()
{
in>>n>>q;
int a, b, c;
while(q--)
{
in>>a;
if(a == 1)
{
in>>b>>c;
pq[b].push(c);
}
else if(a == 2)
{
in>>b;
out<<pq[b].top()<<'\n';
pq[b].pop();
}
else
{
in>>b>>c;
if(pq[b].size() <= pq[c].size())
{
swap(pq[b], pq[c]);
}
while(!pq[c].empty())
{
pq[b].push(pq[c].top());
pq[c].pop();
}
}
}
return 0;
}
