// Author :: Gaurav Ahirwar
#include<bits/stdc++.h>
#define FOR(i,N) for(int i=0;i<(N);i++)
using namespace std;
struct ele {
int val;
int rind;
int cind;
};
typedef struct ele ele;
class mycompare
{
public:
bool operator()(ele n1, ele n2)
{
return n1.val > n2.val;
}
};
int n;
void solve(int arr[][4], int k) {
priority_queue<ele, vector<ele>, mycompare> heap;
vector<ele> v;
ele temp;
FOR(i,k) {
temp.val = arr[i][0];
temp.rind = i;
temp.cind = 0;
heap.push(temp);
}
while(!heap.empty()) {
temp = heap.top();
heap.pop();
cout << temp.val << " ";
if(temp.cind != n-1) {
ele node;
node.val = arr[temp.rind][temp.cind+1];
node.rind = temp.rind;
node.cind = temp.cind + 1;
heap.push(node);
}
}
}
int main() {
n = 4;
int arr[][4] = {{2, 6, 12, 34},
{1, 9, 20, 1000},
{23, 34, 90, 2000}};
int k = sizeof(arr)/sizeof(arr[0]);
solve(arr, k);
return 0;
}
Ly8gQXV0aG9yIDo6IEdhdXJhdiBBaGlyd2FyCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgRk9SKGksTikgZm9yKGludCBpPTA7aTwoTik7aSsrKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGVsZSB7CglpbnQgdmFsOwoJaW50IHJpbmQ7CglpbnQgY2luZDsKfTsKdHlwZWRlZiBzdHJ1Y3QgZWxlIGVsZTsKCmNsYXNzIG15Y29tcGFyZQp7CiAgICBwdWJsaWM6CiAgICAgICAgYm9vbCBvcGVyYXRvcigpKGVsZSBuMSwgZWxlIG4yKQogICAgICAgIHsKICAgICAgICAgIHJldHVybiBuMS52YWwgPiBuMi52YWw7CiAgICAgICAgfQp9OwoKaW50IG47Cgp2b2lkIHNvbHZlKGludCBhcnJbXVs0XSwgaW50IGspIHsKCglwcmlvcml0eV9xdWV1ZTxlbGUsIHZlY3RvcjxlbGU+LCBteWNvbXBhcmU+ICBoZWFwOwoJdmVjdG9yPGVsZT4gdjsKCWVsZSB0ZW1wOwoJCglGT1IoaSxrKSB7CgkJdGVtcC52YWwgPSBhcnJbaV1bMF07CgkJdGVtcC5yaW5kID0gaTsKCQl0ZW1wLmNpbmQgPSAwOwoJCWhlYXAucHVzaCh0ZW1wKTsKCX0KCQoJd2hpbGUoIWhlYXAuZW1wdHkoKSkgewoJCXRlbXAgPSBoZWFwLnRvcCgpOwoJCWhlYXAucG9wKCk7CgkJCgkJY291dCA8PCB0ZW1wLnZhbCA8PCAiICI7CgkJaWYodGVtcC5jaW5kICE9IG4tMSkgewoJCQllbGUgbm9kZTsKCQkJbm9kZS52YWwgPSBhcnJbdGVtcC5yaW5kXVt0ZW1wLmNpbmQrMV07CgkJCW5vZGUucmluZCA9IHRlbXAucmluZDsKCQkJbm9kZS5jaW5kID0gdGVtcC5jaW5kICsgMTsKCQkJaGVhcC5wdXNoKG5vZGUpOwoJCX0KCX0KfQoKaW50IG1haW4oKSB7CgkKCW4gPSA0OwoJaW50IGFycltdWzRdID0gIHt7MiwgNiwgMTIsIDM0fSwKICAgICAgICAgICAgICAgICAgICAgezEsIDksIDIwLCAxMDAwfSwKICAgICAgICAgICAgICAgICAgICAgezIzLCAzNCwgOTAsIDIwMDB9fTsKCWludCBrID0gc2l6ZW9mKGFycikvc2l6ZW9mKGFyclswXSk7Cglzb2x2ZShhcnIsIGspOwoJCiAgCXJldHVybiAwOwp9Cg==