#cspj02001. 苍山洱海的恰好之旅

苍山洱海的恰好之旅

苍山洱海的恰好之旅

题目背景

“下关风,上关花,苍山雪,洱海月。”

阿鹏哥是云南大理的一位白族青年。今天,他计划穿过大理古城,前往崇圣寺三塔参加盛大的三月街民族节。

大理古城的街道纵横交错,可以看作是一个巨大的 N×MN \times M 矩形网格。阿鹏哥的家在古城的西北角(坐标 (1,1)(1, 1)),而三月街的入口在东南角(坐标 (N,M)(N, M))。

阿鹏哥和他的金花(白族对姑娘的尊称)约好了一个精确见面的时间。为了不多等一秒,也不迟到一秒,阿鹏哥必须恰好KK 步到达终点。

题目描述

给定一个 N×MN \times M 的网格地图,起点为 (1,1)(1, 1),终点为 (N,M)(N, M)。 阿鹏哥每次只能向上、下、左、右四个相邻的街区移动一步。古城内没有障碍物,但他不能走出网格边界。

为了消磨时间,阿鹏哥可以重复经过同一个街区(包括起点和终点)。 请你编写一个程序判断:阿鹏哥是否有可能恰好KK 步从起点到达终点?如果可以,输出 Yes,否则输出 No

由于需要查询多次不同的行程安排,本题包含多组测试数据。

输入格式

第一行包含一个正整数 TT,表示测试数据的组数。

接下来 TT 行,每行包含三个正整数 N,M,KN, M, K,分别表示网格的行数、列数以及要求的步数。相邻两个整数之间用空格隔开。

输出格式

输出共 TT 行。对于每组测试数据,如果恰好走 KK 步可以到达终点,输出 Yes;否则输出 No

样例 #1

样例输入 #1

3
3 3 6
3 3 5
5 5 2

样例输出 #1

Yes
No
No

样例解释

  • 第一组数据:起点 (1,1)(1,1),终点 (3,3)(3,3)。最短路径需要 44 步。为了恰好走 66 步,阿鹏哥可以中途“逛逛”:右 \rightarrow\rightarrow\rightarrow\rightarrow\rightarrow 下,共 66 步到达。
  • 第二组数据:无论阿鹏哥怎么绕路,都无法按照制定步数到达。
  • 第三组数据:步数太少,连最短距离都达不到,根本无法到达。

数据范围与提示

本题采用 Subtask 捆绑测试。 对于所有测试点,保证网格至少包含两个格子(即 N+M3N+M \ge 3)。

Subtask 分值 TT 的范围 N,M,KN, M, K 的范围 特殊性质
1 2020 T5T \le 5 N,M,K10N, M, K \le 10
2 3030 T10T \le 10 N,M100N, M \le 100
K1000K \le 1000
3 2020 T105T \le 10^5 N,M,K1018N, M, K \le 10^{18} 保证 KK 与起点到终点的最短步数奇偶性相同
4 3030

提示: 请注意大规模输入输出对程序运行时间的影响,建议使用较快的输入输出方式(如 scanf/printf 或关闭流同步的 cin/cout),并注意使用 64 位整型(long long)防止数据溢出。