Knight Fork
题目描述
在 xy 坐标平面上,是否存在一个格点使得它到两个格点 (x1,y1) 和 (x2,y2) 的距离均为 5?
输入格式
输入以标准输入给出,格式如下:
x1 y1 x2 y2
输出格式
如果存在满足条件的格点,输出 Yes;否则,输出 No。
0 0 3 3
Yes
0 1 2 3
No
1000000000 1000000000 999999999 999999999
Yes
提示
−109≤x1≤109
−109≤y1≤109
−109≤x2≤109
−109≤y2≤109
(x1,y1)=(x2,y2)
输入中的所有值都是整数。在 xy 坐标平面上,横坐标和纵坐标均为整数的点称为格点。
两点 (a,b) 和 (c,d) 之间的距离定义为它们之间的欧几里得距离,(a−c)2+(b−d)2。
下图展示了在 (0,0) 处有一个黑色圆点,和白色圆点表示那些到 (0,0) 的距离为 5 的格点。(网格显示了 x 或 y 为整数的地方。)
点 (2,1) 到点 (x1,y1) 的距离为 (0−2)2+(0−1)2=5;
点 (2,1) 到点 (x2,y2) 的距离为 (3−2)2+(3−1)2=5;
点 (2,1) 是一个格点,
因此点 (2,1) 满足条件。故应输出 Yes。
同样可以断言 (1,2) 也满足该条件。
没有格点满足该条件,因此应输出 No。
点 (109+1,109−2) 和点 (109−2,109+1) 满足该条件。
标签: AtCoder|abc239C
来源
AtCoder|abc239C