[语言月赛202302] 风神瞳

Luogu
IDLGB3707
Time1000ms
Memory256MB
DifficultyP1
2023O2优化分支结构语言月赛
你正在帮助他们设计一款象棋软件。现在,你想要设计一个逻辑功能。以下是对这个功能的介绍。 想象一个无限大的棋盘,我们用 $(x, y)$ 表示棋盘的第 $x$ 行第 $y$ 列。具体的,如果说一个棋子在 $(x, y)$ 位置,那么这个棋子则在棋盘的第 $x$ 行第 $y$ 列。 现在有四种棋子**车、炮、马、象**。它们对应的**编号**及它们的**吃棋子规则**如下表所示。以下规则均假设当前棋子在 $(x, y)$ 位置。 **请注意,以下规则可能与真实的中国象棋规则略有不同。** | 名称 | 编号 | 走法规则 | | :----------: | :----------: | :----------: | | 车 | $1$ | 可沿横线或者竖线移动,即一次操作可以吃掉 $(x + k, y), (x - k, y), (x, y + k), (x, y - k)$ 中的任意一个位置的棋子($k$ 为任意正整数)。 | | 炮 | $2$ | 想象一条直线,炮与对方棋子都在这条直线上。那么只有在这条直线上的炮与对方棋子的中间**有一个另外的棋子**时,炮才能吃掉对方。 | | 马 | $3$ | 马走日,即一次操作可以吃掉 $(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)$ 中的任意一个位置的棋子。 | | 象 | $4$ | 象走田,即一次操作可以吃掉 $(x + 2, y + 2), (x + 2, y - 2), (x - 2, y + 2), (x - 2, y - 2)$ 中的任何一个位置的棋子。 | 现在你得到了一组询问,包含 $p, x _ 0, y _ 0, x _ 1, y _ 1$ 五个整数,代表现在棋盘上**只有**两个棋子,第一个棋子编号为 $p$,在第 $x _ 0$ 行,第 $y _ 0$ 列。第二个棋子编号未知且不需要了解,在第 $x _ 1$ 行,第 $y _ 1$ 列。 你需要考虑,如果你现在可以且仅可以操作第一个棋子**一次**,第一个棋子能否吃掉第二个棋子。 ## Input 输入共一行。 第一行为五个整数 $p, x _ 0, y _ 0, x _ 1, y _ 1$,两两之间以一个空格隔开,同题面中的含义。 ## Output 输出一行,如果第一个棋子可以吃掉第二个棋子,输出 `Yes`,否则输出 `No`。 [samples] ## Note ### 样例解释 样例组 #1 与 #2 代表了车能够与不能够吃掉对方棋子的情况。 样例组 #3 代表了炮不能够吃掉对方棋子的情况。 样例组 #4 代表了马能够吃掉对方棋子的情况。 <https://www.luogu.com.cn/paste/et767k4o> 中含有所有样例的棋子摆放情况,可以按需查阅。 ### 数据规模与约定 对于 $20\%$ 的数据,保证 $p = 2$; 对于 $100\%$ 的数据,保证 $p \in \{1, 2, 3, 4\}$,$1 \leq x _ 0, y _ 0, x _ 1, y _ 1 \leq 10 ^ 9$,且保证不存在 $x _ 0$ 与 $x _ 1$、$y _ 0$ 与 $y _ 1$ 同时相等的情况,即两个棋子不会重合。
Samples
Input #1
1 1 4 2 4
Output #1
Yes
Input #2
1 1 4 2 5
Output #2
No
Input #3
2 1 1 2 1
Output #3
No
Input #4
3 1 4 2 6
Output #4
Yes
API Response (JSON)
{
  "problem": {
    "name": "[语言月赛202302] 风神瞳",
    "description": {
      "content": "你正在帮助他们设计一款象棋软件。现在,你想要设计一个逻辑功能。以下是对这个功能的介绍。 想象一个无限大的棋盘,我们用 $(x, y)$ 表示棋盘的第 $x$ 行第 $y$ 列。具体的,如果说一个棋子在 $(x, y)$ 位置,那么这个棋子则在棋盘的第 $x$ 行第 $y$ 列。 现在有四种棋子**车、炮、马、象**。它们对应的**编号**及它们的**吃棋子规则**如下表所示。以下规则均假设当前",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 262144
    },
    "difficulty": {
      "LuoguStyle": "P1"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB3707"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "你正在帮助他们设计一款象棋软件。现在,你想要设计一个逻辑功能。以下是对这个功能的介绍。\n\n想象一个无限大的棋盘,我们用 $(x, y)$ 表示棋盘的第 $x$ 行第 $y$ 列。具体的,如果说一个棋子在 $(x, y)$ 位置,那么这个棋子则在棋盘的第 $x$ 行第 $y$ 列。\n\n现在有四种棋子**车、炮、马、象**。它们对应的**编号**及它们的**吃棋子规则**如下表所示。以下规则均假设当前...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments