#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> a{6, 10, 14, 20};
std::vector<int> b{4, 8, 16, 20};
auto a_size = a.size();
a.insert(a.end(), b.begin(), b.end());
// merge point is where `a` and `b` meet: at the end of original `a`.
std::inplace_merge(a.begin(), a.begin() + a_size, a.end());
auto last = std::unique(a.begin(), a.end());
a.erase(last, a.end());
for(auto e: a) {
std::cout << e << ' ';
}
std::cout << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50IG1haW4oKSB7CiAgc3RkOjp2ZWN0b3I8aW50PiBhezYsIDEwLCAxNCwgMjB9OwogIHN0ZDo6dmVjdG9yPGludD4gYns0LCA4LCAxNiwgMjB9OwoKICBhdXRvIGFfc2l6ZSA9IGEuc2l6ZSgpOwoKICBhLmluc2VydChhLmVuZCgpLCBiLmJlZ2luKCksIGIuZW5kKCkpOwoKICAvLyBtZXJnZSBwb2ludCBpcyB3aGVyZSBgYWAgYW5kIGBiYCBtZWV0OiBhdCB0aGUgZW5kIG9mIG9yaWdpbmFsIGBhYC4gICAgCiAgc3RkOjppbnBsYWNlX21lcmdlKGEuYmVnaW4oKSwgYS5iZWdpbigpICsgYV9zaXplLCBhLmVuZCgpKTsKCiAgYXV0byBsYXN0ID0gc3RkOjp1bmlxdWUoYS5iZWdpbigpLCBhLmVuZCgpKTsKICBhLmVyYXNlKGxhc3QsIGEuZW5kKCkpOwoKICBmb3IoYXV0byBlOiBhKSB7CiAgICBzdGQ6OmNvdXQgPDwgZSA8PCAnICc7CiAgfQogIHN0ZDo6Y291dCA8PCAnXG4nOwp9