#include <vector>
#include <iostream>
#include <cassert>
template <typename T>
const std::vector<T> operator+(const std::vector<T>& lhs, const std::vector<T>& rhs)
{
assert(lhs.size() == rhs.size());
std::vector<T> r(lhs.size());
for (std::size_t i = 0; i < lhs.size(); ++i)
{
r[i] = lhs[i] + rhs[i];
}
return r;
}
int main()
{
std::vector<int> a;
a.push_back(1);
a.push_back(2);
a.push_back(3);
std::vector<int> b;
b.push_back(11);
b.push_back(12);
b.push_back(13);
std::vector<int> c = a + b;
for (std::size_t i = 0; i < c.size(); ++i)
{
std::cout << c[i] << '\n';
}
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2Fzc2VydD4KCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpjb25zdCBzdGQ6OnZlY3RvcjxUPiBvcGVyYXRvcisoY29uc3Qgc3RkOjp2ZWN0b3I8VD4mIGxocywgY29uc3Qgc3RkOjp2ZWN0b3I8VD4mIHJocykKewogICAgYXNzZXJ0KGxocy5zaXplKCkgPT0gcmhzLnNpemUoKSk7CiAgICBzdGQ6OnZlY3RvcjxUPiByKGxocy5zaXplKCkpOwogICAgCiAgICBmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgbGhzLnNpemUoKTsgKytpKQogICAgewogICAgICAgIHJbaV0gPSBsaHNbaV0gKyByaHNbaV07CiAgICB9CiAgICAKICAgIHJldHVybiByOwp9CgppbnQgbWFpbigpCnsKICAgIHN0ZDo6dmVjdG9yPGludD4gYTsKICAgIGEucHVzaF9iYWNrKDEpOwogICAgYS5wdXNoX2JhY2soMik7CiAgICBhLnB1c2hfYmFjaygzKTsKICAgIAogICAgc3RkOjp2ZWN0b3I8aW50PiBiOwogICAgYi5wdXNoX2JhY2soMTEpOwogICAgYi5wdXNoX2JhY2soMTIpOwogICAgYi5wdXNoX2JhY2soMTMpOwogICAgCiAgICBzdGQ6OnZlY3RvcjxpbnQ+IGMgPSBhICsgYjsKICAgIAogICAgZm9yIChzdGQ6OnNpemVfdCBpID0gMDsgaSA8IGMuc2l6ZSgpOyArK2kpCiAgICB7CiAgICAgICAgc3RkOjpjb3V0IDw8IGNbaV0gPDwgJ1xuJzsKICAgIH0KfQ==