#include <array>
#include <algorithm>
#include <iostream>
typedef std::array<float,3> Vector3D;
Vector3D operator + (const Vector3D& a, const Vector3D& b)
{
Vector3D c;
std::transform(a.begin(), a.end(), b.begin(), c.begin(),
[](float a, float b){return a + b;});
return c;
}
std::ostream& operator << (std::ostream& os, const Vector3D& a)
{
return os << a[0] << ',' << a[1] << ',' << a[2];
}
int main() {
Vector3D a = {2, 3, 0};
Vector3D b = {3, -3, 0};
Vector3D c = a + b;
std::cout << c << std::endl;
}
I2luY2x1ZGUgPGFycmF5PgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aW9zdHJlYW0+Cgp0eXBlZGVmIHN0ZDo6YXJyYXk8ZmxvYXQsMz4gVmVjdG9yM0Q7CgpWZWN0b3IzRCBvcGVyYXRvciArIChjb25zdCBWZWN0b3IzRCYgYSwgY29uc3QgVmVjdG9yM0QmIGIpCnsKICAgVmVjdG9yM0QgYzsKICAgc3RkOjp0cmFuc2Zvcm0oYS5iZWdpbigpLCBhLmVuZCgpLCBiLmJlZ2luKCksIGMuYmVnaW4oKSwgCiAgICAgICAgICAgICAgIFtdKGZsb2F0IGEsIGZsb2F0IGIpe3JldHVybiBhICsgYjt9KTsKICAgcmV0dXJuIGM7Cn0KCnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3IgPDwgKHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFZlY3RvcjNEJiBhKQp7CiAgIHJldHVybiBvcyA8PCBhWzBdIDw8ICcsJyA8PCBhWzFdIDw8ICcsJyA8PCBhWzJdOwp9CgppbnQgbWFpbigpIHsKICAgVmVjdG9yM0QgYSA9IHsyLCAzLCAwfTsKICAgVmVjdG9yM0QgYiA9IHszLCAtMywgMH07CiAgIFZlY3RvcjNEIGMgPSBhICsgYjsKICAgc3RkOjpjb3V0IDw8IGMgPDwgc3RkOjplbmRsOwp9