#include <iostream>
using namespace std;
struct LiczbaZespolona {
double re;
double im;
};
struct Wektor {
LiczbaZespolona x;
LiczbaZespolona y;
};
ostream &operator<<(ostream &wyjscie, const LiczbaZespolona &Zesp) {
wyjscie << "(" << Zesp.re << showpos << Zesp.im << noshowpos << "i)";
return wyjscie;
}
ostream &operator<<(ostream &wyjscie, const Wektor &V) {
// Od razu widac, ze cos jest nie tak:
// wyjscie << "( " < V.x << ", " << V.y << " )";
wyjscie << "( " << V.x << ", " << V.y << " )";
return wyjscie;
}
void Test(){
// W C++11 na pewno można tak:
Wektor V = { {7, 8}, {4, 12} };
cout << V << '\n';
}
int main() {
Test();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgTGljemJhWmVzcG9sb25hIHsKICBkb3VibGUgIHJlOwogIGRvdWJsZSAgaW07Cn07CiAKc3RydWN0IFdla3RvciB7CiAgTGljemJhWmVzcG9sb25hICB4OwogIExpY3piYVplc3BvbG9uYSAgeTsKfTsKCm9zdHJlYW0gJm9wZXJhdG9yPDwob3N0cmVhbSAmd3lqc2NpZSwgY29uc3QgTGljemJhWmVzcG9sb25hICZaZXNwKSB7CiAgd3lqc2NpZSA8PCAiKCIgPDwgWmVzcC5yZSA8PCBzaG93cG9zIDw8IFplc3AuaW0gPDwgbm9zaG93cG9zIDw8ICJpKSI7IAogIAogIHJldHVybiB3eWpzY2llOyAKfSAgICAgIAoKb3N0cmVhbSAmb3BlcmF0b3I8PChvc3RyZWFtICZ3eWpzY2llLCBjb25zdCBXZWt0b3IgJlYpIHsKICAvLyBPZCByYXp1IHdpZGFjLCB6ZSBjb3MgamVzdCBuaWUgdGFrOgogIC8vIHd5anNjaWUgPDwgIiggICIgPCBWLnggPDwgIiwgICIgPDwgVi55IDw8ICIgICkiOwogIHd5anNjaWUgPDwgIiggICIgPDwgVi54IDw8ICIsICAiIDw8IFYueSA8PCAiICApIjsKICAKICByZXR1cm4gd3lqc2NpZTsKfQogCnZvaWQgVGVzdCgpewogIC8vIFcgQysrMTEgbmEgcGV3bm8gbW/FvG5hIHRhazoKICBXZWt0b3IgViA9IHsgezcsIDh9LCB7NCwgMTJ9IH07CiAgCiAgY291dCA8PCBWIDw8ICdcbic7Cn0gICAKCmludCBtYWluKCkgewogIFRlc3QoKTsKICAKICByZXR1cm4gMDsgICAKfQ==