#include <iostream>
using namespace std;
struct Complex {
double re, im;
Complex(double r, double i): re(r), im(i) {}
friend Complex operator+(const Complex l, const Complex r) {
return Complex(r.re + l.re, r.im + l.im); // zwracamy nowo utworzony obiekt...
}
friend ostream& operator<<(ostream& out, const Complex c) {
return out << "(" << c.re << ", " << c.im << ")";
}
};
int main(void) {
cout << (Complex(20, 2) + Complex(20, 2));
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IENvbXBsZXggewogIGRvdWJsZSByZSwgaW07CiAgQ29tcGxleChkb3VibGUgciwgZG91YmxlIGkpOiByZShyKSwgaW0oaSkge30KICBmcmllbmQgQ29tcGxleCBvcGVyYXRvcisoY29uc3QgQ29tcGxleCBsLCBjb25zdCBDb21wbGV4IHIpIHsKICAgIHJldHVybiBDb21wbGV4KHIucmUgKyBsLnJlLCByLmltICsgbC5pbSk7IC8vIHp3cmFjYW15IG5vd28gdXR3b3J6b255IG9iaWVrdC4uLgogIH0KICAKICBmcmllbmQgb3N0cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFtJiBvdXQsIGNvbnN0IENvbXBsZXggYykgewogICAgcmV0dXJuIG91dCA8PCAiKCIgPDwgYy5yZSA8PCAiLCAiIDw8IGMuaW0gPDwgIikiOwogIH0KfTsKCmludCBtYWluKHZvaWQpIHsKICBjb3V0IDw8IChDb21wbGV4KDIwLCAyKSArIENvbXBsZXgoMjAsIDIpKTsKfQ==