#include <bits/stdc++.h>
using namespace std;
int main() {
vector<int> v={1,2,3} ;//{6,4,8};
priority_queue<int,vector<int>,greater<int>> pq; //min priority queue
int ans=0;
for(auto x:v)
pq.push(x);
while(pq.size()>1)
{
int e1=pq.top();
pq.pop();
int e2=pq.top();
pq.pop();
ans+=e1+e2;
cout<<e1<<" "<<e2<<endl;
pq.push(e1+e2);
}
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKdmVjdG9yPGludD4gdj17MSwyLDN9IDsvL3s2LDQsOH07Cgpwcmlvcml0eV9xdWV1ZTxpbnQsdmVjdG9yPGludD4sZ3JlYXRlcjxpbnQ+PiBwcTsgLy9taW4gcHJpb3JpdHkgcXVldWUKaW50IGFucz0wOwpmb3IoYXV0byB4OnYpCnBxLnB1c2goeCk7Cgp3aGlsZShwcS5zaXplKCk+MSkKewoJaW50IGUxPXBxLnRvcCgpOwoJcHEucG9wKCk7CglpbnQgZTI9cHEudG9wKCk7CglwcS5wb3AoKTsKCQoJYW5zKz1lMStlMjsKCQoJY291dDw8ZTE8PCIgIjw8ZTI8PGVuZGw7CgkKCXBxLnB1c2goZTErZTIpOwp9CmNvdXQ8PGFuczw8ZW5kbDsKCglyZXR1cm4gMDsKfQ==