Cod sursa(job #2743030)
Utilizator | Silion Liviu siliviu | Data | 22 aprilie 2021 14:49:30 |
---|---|---|---|
Problema | Heapuri cu reuniune | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include <bits/stdc++.h>
#include <ext/pb_ds/priority_queue.hpp>
using namespace std;
using namespace __gnu_pbds;
int main() {
ifstream cin("mergeheap.in");
ofstream cout("mergeheap.out");
int n, q, x, y, z;
cin >> n >> q;
vector<__gnu_pbds::priority_queue<int, less<int>, pairing_heap_tag, allocator<char>>> Q(n);
while (q--) {
cin >> x >> y;
if (x == 1) {
cin >> z;
Q[y].push(z);
}
else if (x == 2) {
cout << Q[y].top() << '\n';
Q[y].pop();
}
else {
cin >> z;
Q[y].join(Q[z]);
}
}
}