#include <iostream>
#include <vector>
int main() {
std::vector<int> a{6, 10, 14, 20};
std::vector<int> b{4, 8, 16, 20};
std::vector<int> result;
result.reserve(a.size() + b.size());
auto aIt = a.cbegin();
auto bIt = b.cbegin();
while(aIt != a.cend() && bIt != b.cend())
{
if((aIt != a.end()) && ((*aIt < *bIt) || (bIt == b.end())))
{
if(result.size() == 0 || *aIt != result.back())
{
result.push_back(*aIt);
}
++aIt;
}
else
{
if(result.size() == 0 || *bIt != result.back())
{
result.push_back(*bIt);
}
++bIt;
}
}
for(int& i : result)
{
std::cout << i << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50IG1haW4oKSB7CglzdGQ6OnZlY3RvcjxpbnQ+IGF7NiwgMTAsIDE0LCAyMH07CiAgICBzdGQ6OnZlY3RvcjxpbnQ+IGJ7NCwgOCwgMTYsIDIwfTsKICAKICAgIHN0ZDo6dmVjdG9yPGludD4gcmVzdWx0OwogICAgcmVzdWx0LnJlc2VydmUoYS5zaXplKCkgKyBiLnNpemUoKSk7CiAgICAKICAgIGF1dG8gYUl0ID0gYS5jYmVnaW4oKTsKICAgIGF1dG8gYkl0ID0gYi5jYmVnaW4oKTsKICAgIAogICAgd2hpbGUoYUl0ICE9IGEuY2VuZCgpICYmIGJJdCAhPSBiLmNlbmQoKSkKICAgIHsKICAgIAlpZigoYUl0ICE9IGEuZW5kKCkpICYmICgoKmFJdCA8ICpiSXQpIHx8IChiSXQgPT0gYi5lbmQoKSkpKQogICAgCXsKICAgIAkJaWYocmVzdWx0LnNpemUoKSA9PSAwIHx8ICphSXQgIT0gcmVzdWx0LmJhY2soKSkKICAgIAkJewogICAgCQkJcmVzdWx0LnB1c2hfYmFjaygqYUl0KTsKICAgIAkJfQogICAgCQkrK2FJdDsKICAgIAl9CiAgICAJZWxzZQogICAgCXsKICAgIAkJaWYocmVzdWx0LnNpemUoKSA9PSAwIHx8ICpiSXQgIT0gcmVzdWx0LmJhY2soKSkKICAgIAkJewogICAgCQkJcmVzdWx0LnB1c2hfYmFjaygqYkl0KTsKICAgIAkJfQogICAgCQkrK2JJdDsKICAgIAl9CiAgICB9CiAgICAKICAgIGZvcihpbnQmIGkgOiByZXN1bHQpCiAgICB7CiAgICAJc3RkOjpjb3V0IDw8IGkgPDwgc3RkOjplbmRsOwogICAgfQogICAgCglyZXR1cm4gMDsKfQ==