📅  最后修改于: 2023-12-03 15:42:21.203000             🧑  作者: Mango
本题源自于门|门 IT 2005比赛,是一道程序设计题。
有两只青蛙,它们在坐标系里跳跃,初始位置都在原点,每次可以朝着 $x$ 或者 $y$ 轴正方向跳 $1$ 个单位长度。现在给定两只青蛙的最终位置 $(x_1, y_1)$ 和 $(x_2, y_2)$,请问它们是否能通过上述跳跃到达这些位置。
输入共包含 $4$ 个整数 $x_1, y_1, x_2, y_2$,含义如题面所述,表示两只青蛙的最终位置。$-10^6 \leq x_i, y_i \leq 10^6$。
如果能够通过跳跃到达目标位置,则输出 YES
,否则输出 NO
。
5 5 5 5
YES
样例解释:两只青蛙都已经到达了目标位置,所以它们是可以通过跳跃到达这些位置的。
x1, y1, x2, y2 = map(int, input().split())
# 判断两只青蛙跳跃的轨迹是否相同
if abs(x1 - x2) % 2 == 0 and abs(y1 - y2) % 2 == 0:
print('YES')
else:
print('NO')
青蛙每次跳跃只能朝着 $x$ 或者 $y$ 轴正方向跳 $1$ 个单位长度,所以只有当两只青蛙每一步跳跃的轨迹相同时,才有可能同时到达目标位置。
因此,我们只需要判断两只青蛙每一步跳跃的轨迹是否相同即可。每次只能跳跃 $1$ 个单位长度,所以如果两只青蛙到达目标位置的 $x,y$ 坐标差值分别为偶数,则它们跳跃的轨迹一定相同。如果差值为奇数,则跳跃轨迹不同,无法同时到达目标位置。