#include <algorithm>
#include <functional>
#include <iostream>
#include <memory>
#include <string>
#include <type_traits>
#include <utility>
namespace A {
namespace B {
namespace C {
namespace D {
template <class T>
struct point_xy { T x, y; point_xy(T x, T y) : x(x), y(y) {} };
}
}
}
}
typedef A::B::C::D::point_xy<long> Point;
typedef std::pair<Point, Point> Vector;
namespace A { namespace B { namespace C { namespace D {
bool operator==(const Point& p1, const Point& p2) {
return p1.x== p2.x && p1.y== p2.y;
}
} } } }
int main() {
Vector vec1(Point(0,0), Point(1,1));
Vector vec2(Point(0,0), Point(1,2));
std::cout << ((vec1 == vec2) == false) << std::endl;
std::cout << ((vec1 == vec1) == true) << std::endl;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPG1lbW9yeT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgojaW5jbHVkZSA8dXRpbGl0eT4KCm5hbWVzcGFjZSBBIHsKCW5hbWVzcGFjZSBCIHsKCQluYW1lc3BhY2UgQyB7CgkJCW5hbWVzcGFjZSBEIHsKCQkJCXRlbXBsYXRlIDxjbGFzcyBUPgoJCQkJc3RydWN0IHBvaW50X3h5IHsgVCB4LCB5OyBwb2ludF94eShUIHgsIFQgeSkgOiB4KHgpLCB5KHkpIHt9IH07CgkJCX0KCQl9Cgl9Cn0KCnR5cGVkZWYgQTo6Qjo6Qzo6RDo6cG9pbnRfeHk8bG9uZz4gUG9pbnQ7CnR5cGVkZWYgc3RkOjpwYWlyPFBvaW50LCBQb2ludD4gVmVjdG9yOwoKIG5hbWVzcGFjZSBBIHsgbmFtZXNwYWNlIEIgeyBuYW1lc3BhY2UgQyB7IG5hbWVzcGFjZSBEIHsKYm9vbCBvcGVyYXRvcj09KGNvbnN0IFBvaW50JiBwMSwgY29uc3QgUG9pbnQmIHAyKSB7CiAgcmV0dXJuIHAxLng9PSBwMi54ICYmIHAxLnk9PSBwMi55Owp9CiB9IH0gfSB9CgppbnQgbWFpbigpIHsKICAgIFZlY3RvciB2ZWMxKFBvaW50KDAsMCksIFBvaW50KDEsMSkpOwogICAgVmVjdG9yIHZlYzIoUG9pbnQoMCwwKSwgUG9pbnQoMSwyKSk7CiAgICBzdGQ6OmNvdXQgPDwgKCh2ZWMxID09IHZlYzIpID09IGZhbHNlKSA8PCBzdGQ6OmVuZGw7CiAgICBzdGQ6OmNvdXQgPDwgKCh2ZWMxID09IHZlYzEpID09IHRydWUpIDw8IHN0ZDo6ZW5kbDsKfQo=