B. Arpa and an exam about geometry
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

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.

Input

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.

Output

Print "Yes" if the problem has a solution, "No" otherwise.

You can print each letter in any case (upper or lower).

Examples
Input
0 1 1 1 1 0
Output
Yes
Input
1 1 0 0 1000 1000
Output
No
Note

In the first sample test, rotate the page around (0.5, 0.5) by B. Arpa and an exam about geometry.

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 }

 

相关文章: