#1302. 风神瞳

风神瞳

风神瞳

题目描述

你正在帮助他们设计一款象棋软件。现在,你想要设计一个逻辑功能。以下是对这个功能的介绍。

想象一个无限大的棋盘,我们用 (x,y)(x, y) 表示棋盘的第 xx 行第 yy 列。具体的,如果说一个棋子在 (x,y)(x, y) 位置,那么这个棋子则在棋盘的第 xx 行第 yy 列。

现在有四种棋子车、炮、马、象。它们对应的编号及它们的吃棋子规则如下表所示。以下规则均假设当前棋子在 (x,y)(x, y) 位置。

请注意,以下规则可能与真实的中国象棋规则略有不同。

名称 编号 走法规则
11 可沿横线或者竖线移动,即一次操作可以吃掉 (x+k,y),(xk,y),(x,y+k),(x,yk)(x + k, y), (x - k, y), (x, y + k), (x, y - k) 中的任意一个位置的棋子(kk 为任意正整数)。
22 想象一条直线,炮与对方棋子都在这条直线上。那么只有在这条直线上的炮与对方棋子的中间有一个另外的棋子时,炮才能吃掉对方。
33 马走日,即一次操作可以吃掉 $(x + 2, y + 1), (x + 2, y - 1), (x - 2, y + 1), (x - 2, y - 1), (x + 1, y + 2), (x + 1, y - 2), (x - 1, y + 2), (x - 1, y - 2)$ 中的任意一个位置的棋子。
44 象走田,即一次操作可以吃掉 $(x + 2, y + 2), (x + 2, y - 2), (x - 2, y + 2), (x - 2, y - 2)$ 中的任何一个位置的棋子。

现在你得到了一组询问,包含 p,x0,y0,x1,y1p, x _ 0, y _ 0, x _ 1, y _ 1 五个整数,代表现在棋盘上只有两个棋子,第一个棋子编号为 pp,在第 x0x _ 0 行,第 y0y _ 0 列。第二个棋子编号未知且不需要了解,在第 x1x _ 1 行,第 y1y _ 1 列。

你需要考虑,如果你现在可以且仅可以操作第一个棋子一次,第一个棋子能否吃掉第二个棋子。

输入格式

输入共一行。

第一行为五个整数 p,x0,y0,x1,y1p, x _ 0, y _ 0, x _ 1, y _ 1,两两之间以一个空格隔开,同题面中的含义。

输出格式

输出一行,如果第一个棋子可以吃掉第二个棋子,输出 Yes,否则输出 No

样例 #1

样例输入 #1

1 1 4 2 4

样例输出 #1

Yes

样例 #2

样例输入 #2

1 1 4 2 5

样例输出 #2

No

样例 #3

样例输入 #3

2 1 1 2 1

样例输出 #3

No

样例 #4

样例输入 #4

3 1 4 2 6

样例输出 #4

Yes

提示

样例解释

样例组 #1 与 #2 代表了车能够与不能够吃掉对方棋子的情况。

样例组 #3 代表了炮不能够吃掉对方棋子的情况。

样例组 #4 代表了马能够吃掉对方棋子的情况。

https://www.luogu.com.cn/paste/et767k4o 中含有所有样例的棋子摆放情况,可以按需查阅。

数据规模与约定

对于 20%20\% 的数据,保证 p=2p = 2; 对于 100%100\% 的数据,保证 p{1,2,3,4}p \in \{1, 2, 3, 4\}1x0,y0,x1,y11091 \leq x _ 0, y _ 0, x _ 1, y _ 1 \leq 10 ^ 9,且保证不存在 x0x _ 0x1x _ 1y0y _ 0y1y _ 1 同时相等的情况,即两个棋子不会重合。