Cod sursa(job #2856140)

Utilizator Xutzu358Ignat Alex Xutzu358 Data 23 februarie 2022 14:20:04
Problema Heapuri cu reuniune Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;

ifstream f("mergeheap.in");
ofstream g("mergeheap.out");

priority_queue < int > pq[105];
int n,q;
int op,a,b,m,x;

void insertion() {
    f >> m >> x;
    pq[m].push(x);
}

void maximum() {
    f >> m;
    g << pq[m].top() << '\n';
    pq[m].pop();
}

void reunion() {
    f >> a >> b;
    if (pq[a].size()<pq[b].size()) {
        swap(pq[a],pq[b]);
    }
    while (!pq[b].empty()) {
        pq[a].push(pq[b].top());
        pq[b].pop();
    }
}

void solve() {
    f >> n >> q;
    for (int i=1;i<=q;i++) {
        f >> op;
        if (op==1) {
            insertion();
        }
        else if (op==2) {
            maximum();
        }
        else {
            reunion();
        }
    }
}

int main()
{
    solve();
    return 0;
}