跳到主要内容

H0001 将军抽车

将军抽车

《[语言月赛 202308] 小粉兔喜欢下象棋吗》 修改

题目描述

在中国象棋中,马走日字形。用 (i,j)(i,j) 表示第 ii 行第 jj 列的格点,不考虑别马腿,考虑跳出棋盘外,在 (i,j)(i,j) 的马可以跳到 (i2,j+1)(i-2,j+1)(i2,j1)(i-2,j-1)(i1,j+2)(i-1,j+2)(i1,j2)(i-1,j-2)(i+1,j+2)(i+1,j+2)(i+1,j2)(i+1,j-2)(i+2,j+1)(i+2,j+1)(i+2,j1)(i+2,j-1) 八个位置。

将军抽车是中国象棋中常用的进攻策略。如下图所示,此时红帅在 (1,5)(1,5),红车在 (2,8)(2,8)。若黑马跳到红框位置所指的 (3,6)(3,6),帅将由于被将军被迫移动,此时,马就可以吃掉红车。

深搜将军抽车图例

本题将解决将军抽车的简化版问题。在本题中,将军抽车就是要通过一步跳马,在能够将军的同时将车置于马的攻击位置。

只考虑棋盘上有红帅、红车、黑马各一枚的情况,不考虑帅是否可以通过移动实现对车的保护,不考虑别马腿。 你现在写一个程序帮助你思考下,在红车和红帅不移动的情况下,3步内,黑马是否可以在不出界的情况下,实现将军抽车?如果有,将每一步的坐标

输入格式

输入共三行。 输入的第一行为两个整数 Sx,SyS_x,S_y,表示红帅的位置为 (Sx,Sy)(S_x,S_y)
输入的第二行为两个整数 Cx,CyC_x,C_y,表示红车的位置为 (Cx,Cy)(C_x,C_y)
输入的第三行为两个整数 Mx,MyM_x,M_y,表示黑马的位置为 (Mx,My)(M_x,M_y)
保证红帅在 131 \sim 3 行的九宫格内。

输出格式

输出一行一个字符串:

  • 若可以实现将军抽车,输出 Yes
  • 若不可以实现将军抽车,输出 No

样例 #1

样例输入 #1
1 5
2 8
5 5
样例输出 #1
Yes

样例 #2

样例输入 #2
1 5
2 9
5 5
样例输出 #2
No

提示:

数据规模与约定

对于 100%100\% 的测试数据,1Sx31 \le S_x \le 34Sy64 \le S_y \le 61Cx,Mx101 \le C_x,M_x \le 101Cy,My91 \le C_y,M_y \le 9。保证没有任意两枚棋子初始时处于同一位置。

*练习笔记

暂无人完成练习,做第一个完成练习的人—-first blood !