Pagini recente » Cod sursa (job #2843021) | Cod sursa (job #1257672) | Cod sursa (job #1681578) | Cod sursa (job #2160031) | Cod sursa (job #2757189)
#include <cstdio>
#include <vector>
#include <ext/pb_ds/priority_queue.hpp>
std::vector<__gnu_pbds::priority_queue<int,
std::less<int>,
__gnu_pbds::pairing_heap_tag,
std::allocator<int>>> Heaps;
int main()
{
freopen("mergeheap.in", "r", stdin);
freopen("mergeheap.out", "w", stdout);
int N, Q, M, X, A, B, op;
scanf("%d%d", &N ,&Q);
Heaps.resize(N + 1);
for (int t = 1; t <= Q; ++t) {
scanf("%d", &op);
if (op == 1) {
scanf("%d%d", &M, &X);
Heaps[M].push(X);
continue;
}
if (op == 2) {
scanf("%d", &M);
printf("%d\n", Heaps[M].top());
Heaps[M].pop();
continue;
}
scanf("%d%d", &A, &B);
Heaps[A].join(Heaps[B]);
}
return 0;
}