#include <iostream>
using namespace std;
class three_d {
int x, y, z;
public:
three_d(int a, int b, int c) {x=a; y=b, z=c; }
three_d operator+(three_d op2);
friend ostream &operator<<(ostream &stream, const three_d &obj);
};
ostream &operator<< (ostream &stream, const three_d &obj)
{
stream << obj.x << ", ";
stream << obj.y << ", ";
stream << obj.z << endl;
return stream;
}
three_d three_d::operator+ (three_d op2)
{
return three_d(x + op2.x, y + op2.y, z + op2.z);
}
int main()
{
three_d a(1, 2, 3), b(2, 3, 4);
cout << a+b << endl; // 32
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgdGhyZWVfZCB7CiAgICBpbnQgeCwgeSwgejsKcHVibGljOgogICAgdGhyZWVfZChpbnQgYSwgaW50IGIsIGludCBjKSB7eD1hOyB5PWIsIHo9YzsgfQogICAgdGhyZWVfZCBvcGVyYXRvcisodGhyZWVfZCBvcDIpOwogICAgZnJpZW5kIG9zdHJlYW0gJm9wZXJhdG9yPDwob3N0cmVhbSAmc3RyZWFtLCBjb25zdCB0aHJlZV9kICZvYmopOwp9Owpvc3RyZWFtICZvcGVyYXRvcjw8IChvc3RyZWFtICZzdHJlYW0sIGNvbnN0IHRocmVlX2QgJm9iaikKewogICAgc3RyZWFtIDw8IG9iai54IDw8ICIsICI7CiAgICBzdHJlYW0gPDwgb2JqLnkgPDwgIiwgIjsKICAgIHN0cmVhbSA8PCBvYmoueiA8PCBlbmRsOwogICAgcmV0dXJuIHN0cmVhbTsKfQp0aHJlZV9kIHRocmVlX2Q6Om9wZXJhdG9yKyAodGhyZWVfZCBvcDIpCnsKICAgIHJldHVybiB0aHJlZV9kKHggKyBvcDIueCwgeSArIG9wMi55LCB6ICsgb3AyLnopOwp9CgppbnQgbWFpbigpCnsKICAgIHRocmVlX2QgYSgxLCAyLCAzKSwgYigyLCAzLCA0KTsKICAgIGNvdXQgPDwgYStiIDw8IGVuZGw7IC8vIDMyCiAgICByZXR1cm4gMDsKfQ==