#include #include #include class VECTOR_INT_2D { public: int x, y; VECTOR_INT_2D operator+(VECTOR_INT_2D vector) { VECTOR_INT_2D result; result.x = x + vector.x; result.y = y + vector.y; return result; } VECTOR_INT_2D operator-(VECTOR_INT_2D vector) { VECTOR_INT_2D result; result.x = x - vector.x; result.y = y - vector.y; return result; } void showVector(void) { std::cout << x << " " << y << std::endl; return; } int absx(void) { if(x >= 0) { return x; } else { return -1 * x; } } int absy(void) { if(y >= 0) { return y; } else { return -1 * y; } } }; double inner(VECTOR_INT_2D vec1, VECTOR_INT_2D vec2) { double inner; inner = vec1.x * vec2.x + vec1.y * vec2.y; return inner; } bool equal(VECTOR_INT_2D vec1, VECTOR_INT_2D vec2) { if(vec1.x == vec2.x && vec1.y == vec2.y) { return true; } else { return false; } } bool equalNorm(VECTOR_INT_2D vec1, VECTOR_INT_2D vec2) { if(vec1.absx() == vec2.absy() && vec1.absy() == vec2.absx()) { return true; } else { return false; } } int main(void) { VECTOR_INT_2D point[4]; VECTOR_INT_2D RelVec[3]; for(int i = 0; i < 3; i ++) { std::cin >> point[i].x >> point[i].y; } RelVec[0] = point[1] - point[0]; RelVec[1] = point[2] - point[0]; RelVec[2] = point[2] - point[1]; if(inner(RelVec[0], RelVec[1]) == 0.0) { if(equalNorm(RelVec[0], RelVec[1])) { point[3] = point[0] + RelVec[0] + RelVec[1]; point[3].showVector(); } else { std::cout << "-1" << std::endl; } } else if(inner(RelVec[0], RelVec[2]) == 0.0) { if(equalNorm(RelVec[0], RelVec[2])) { point[3] = point[0] + RelVec[2]; point[3].showVector(); } else { std::cout << "-1" << std::endl; } } else if(inner(RelVec[1], RelVec[2]) == 0.0) { if(equalNorm(RelVec[1], RelVec[2])) { point[3] = point[2] - RelVec[1] - RelVec[2]; point[3].showVector(); } else { std::cout << "-1" << std::endl; } } else { std::cout << "-1" << std::endl; } return 0; }