Pagini recente » Cod sursa (job #1951525) | Cod sursa (job #1352728) | Cod sursa (job #2801211) | Cod sursa (job #1287067) | Cod sursa (job #2932633)
#include <fstream>
#include <queue>
using namespace std;
priority_queue <int> q[101];
int main() {
ifstream f("mergeheap.in");
ofstream g("mergeheap.out");
int n, op, x, nr = 0, mul, totMul;
f >> totMul >> n;
while(n--) {
f >> op >> mul;
if (op == 1) {
f >> x;
q[mul].push(x);
}
else {
if (op == 2) {
g << q[mul].top() << "\n";
q[mul].pop();
}
else {
f >> x;
if (q[mul].size() < q[x].size()) {
swap(q[mul], q[x]);
}
while (!q[x].empty()) {
q[mul].push(q[x].top());
q[x].pop();
}
}
}
}
f.close();
g.close();
return 0;
}