📜  门|门 IT 2005 |第 32 题(1)

📅  最后修改于: 2023-12-03 15:42:21.203000             🧑  作者: Mango

门|门 IT 2005 |第 32 题

本题源自于门|门 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$ 坐标差值分别为偶数,则它们跳跃的轨迹一定相同。如果差值为奇数,则跳跃轨迹不同,无法同时到达目标位置。