#include #include using namespace std; #define fi first #define se second #define mp make_pair typedef pair P; int len(P p1, P p2){ return (p1.fi-p2.fi)*(p1.fi-p2.fi)+(p1.se-p2.se)*(p1.se-p2.se); } int check(P p1, P p2, P p3, P p4){ if((p1.se-p2.se)*(p3.se-p4.se)==(p2.fi-p1.fi)*(p3.fi-p4.fi)){ if((p1.fi+p2.fi)==(p3.fi+p4.fi)&&(p1.se+p2.se)==(p3.se+p4.se)){ if(len(p1,p2)==len(p3,p4)){ return 1; } } } return 0; } int main(){ int x1,y1,x2,y2,x3,y3; cin>>x1>>y1>>x2>>y2>>x3>>y3; for(int y4 = -200; y4 <= 200; y4++){ for(int x4 = -200; x4 <= 200; x4++){ P p1 = mp(x1,y1); P p2 = mp(x2,y2); P p3 = mp(x3,y3); P p4 = mp(x4,y4); int res = 0; res |= check(p1,p2,p3,p4); res |= check(p1,p3,p2,p4); res |= check(p1,p4,p2,p3); if(res == 1){ cout << x4 << " " << y4 << endl; return 0; } } } cout << -1 << endl; return 0; } /* 範囲が狭いので4点目を全探索するインチキ解法が可能です。 もちろん範囲が-1000000000<=X,Y<=1000000000などでも答えはでます。 ★3つにしてちゃんとした幾何の問題にしてもおもしろいかもしれません。 */