Arpa is taking a geometry exam. Here is the last problem of the exam.
You are given three points a, b, c.
Find a point and an angle such that if we rotate the page around the point by the angle, the new position of a is the same as the old position of b, and the new position of b is the same as the old position of c.
Arpa is doubting if the problem has a solution or not (i.e. if there exists a point and an angle satisfying the condition). Help Arpa determine if the question has a solution or not.
The only line contains six integers ax, ay, bx, by, cx, cy (|ax|, |ay|, |bx|, |by|, |cx|, |cy| ≤ 109). It's guaranteed that the points are distinct.
Print "Yes" if the problem has a solution, "No" otherwise.
You can print each letter in any case (upper or lower).
0 1 1 1 1 0
Yes
1 1 0 0 1000 1000
No
In the first sample test, rotate the page around (0.5, 0.5) by .
In the second sample test, you can't find any solution.
1 #include <bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 long long int ax,ay,bx,by,cx,cy; 5 cin>>ax>>ay>>bx>>by>>cx>>cy; 6 ax*=2; 7 ay*=2; 8 bx*=2; 9 by*=2; 10 cx*=2; 11 cy*=2; 12 long long int n,m,i,j; 13 n=abs(ax-bx)*abs(ax-bx)+abs(ay-by)*abs(ay-by); 14 m=abs(bx-cx)*abs(bx-cx)+abs(by-cy)*abs(by-cy); 15 i=(ax+cx)/2; 16 j=(ay+cy)/2; 17 if(n==m&&!(i==bx&&j==by)){ 18 cout<<"Yes"<<endl; 19 }else{ 20 cout<<"No"<<endl; 21 } 22 return 0; 23 }