Cod sursa(job #2743032)

Utilizator siliviuSilion Liviu siliviu Data 22 aprilie 2021 14:52:42
Problema Heapuri cu reuniune Scor 100
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 + 1);
	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]);
		}
	}
}