#X3707. 风神瞳
风神瞳
题目描述
你正在帮助他们设计一款象棋软件。现在,你想要设计一个逻辑功能。以下是对这个功能的介绍。
想象一个无限大的棋盘,我们用 表示棋盘的第 行第 列。具体的,如果说一个棋子在 位置,那么这个棋子则在棋盘的第 行第 列。
现在有四种棋子车、炮、马、象。它们对应的编号及它们的吃棋子规则如下表所示。以下规则均假设当前棋子在 位置。
请注意,以下规则可能与真实的中国象棋规则略有不同。
名称 | 编号 | 走法规则 |
---|---|---|
车 | 可沿横线或者竖线移动,即一次操作可以吃掉 中的任意一个位置的棋子( 为任意正整数)。 | |
炮 | 想象一条直线,炮与对方棋子都在这条直线上。那么只有在这条直线上的炮与对方棋子的中间有一个另外的棋子时,炮才能吃掉对方。 | |
马 | 马走日,即一次操作可以吃掉 $(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)$ 中的任意一个位置的棋子。 | |
象 | 象走田,即一次操作可以吃掉 $(x + 2, y + 2), (x + 2, y - 2), (x - 2, y + 2), (x - 2, y - 2)$ 中的任何一个位置的棋子。 |
现在你得到了一组询问,包含 五个整数,代表现在棋盘上只有两个棋子,第一个棋子编号为 ,在第 行,第 列。第二个棋子编号未知且不需要了解,在第 行,第 列。
你需要考虑,如果你现在可以且仅可以操作第一个棋子一次,第一个棋子能否吃掉第二个棋子。
输入格式
输入共一行。
第一行为五个整数 ,两两之间以一个空格隔开,同题面中的含义。
输出格式
输出一行,如果第一个棋子可以吃掉第二个棋子,输出 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 代表了马能够吃掉对方棋子的情况。
这里以从上往下的方式计算行数,从左向右的方式计算列数。
第一枚棋子统一为红方棋子,第二枚棋子为黑方的“将”。
可能按照正常的中国象棋要求,部分样例中“将”的位置不正确,但是这里仅作演示,且题目规则不完全为中国象棋规则,故不考虑这个因素。
样例 #1
样例 #2
样例 #3
样例 #4
数据规模与约定
对于 的数据,保证 ; 对于 的数据,保证 ,,且保证不存在 与 、 与 同时相等的情况,即两个棋子不会重合。