CF-42B普及+/提高
象棋残局
⏱ 2.0s💾 256MB
📋 题目描述
棋盘上只有四个棋子:两个白车,白王和黑王,每个棋子都在一个正确的位置,各个棋子的坐标输入数据会给出。你的任务是判断白方是否能获胜。具体规则:黑王可以被对方的一个棋子吃掉,车可以水平移动或垂直移动任意数量的格子,路径上如果遇到其它棋子不可逾越,国王可以移动到八个方向的相邻格子,黑王可以吃掉白车。如果黑王再移动一步,或者不移动的情况下,不会被攻击,则白方不能获胜。更简单的说,就是对于当前状态,该黑王走了,但他没法移动,在规则允许他去的地方,无论走到哪里下一步都会被白棋吃掉。棋子任何时候都不能离开棋盘。
📥 输入格式
仅有一行,包含四部分,每部分包含两个字符(第一个字符为横坐标,第二个字符为纵坐标),四个部分分别描述两个白车、白王、黑王的位置。四个部分,两两之间用一个空格分隔。 棋盘上的每个位置由两个字符表示,第一个字符表示横坐标( 从 到 的小写字母),第二个字符表示纵坐标 (从 到 的数字)。数据保证,没有两个棋子占据同一个格子。
📤 输出格式
仅有一行包含一个单词,若白方能胜输出 ,否则输出 。
📝 样例 1
输入
a6 b4 c8 a8
输出
CHECKMATE
📝 样例 2
输入
a6 c4 b6 b8
输出
OTHER
📝 样例 3
输入
a2 b1 a3 a1
输出
OTHER
📚 来源
Problem:CF-42B
Contest:Codeforces Beta Round #41
💡 题目讲解
1
理解题意
这是一个国际象棋残局。棋盘上只有四个棋子:
| 棋子 | 符号 | 走法 |
|---|---|---|
| 白车 ×2 | ♖ | 横竖走任意格,不能越过其他棋子 |
| 白王 | ♔ | 八个方向各走一格 |
| 黑王 | ♚ | 八个方向各走一格,可以吃白车 |
现在轮到黑方走。
🎯 将死(Checkmate)是什么意思?
黑王走完一步(或者不动)之后,无论如何下一步都会被白棋吃掉。
换句话说:黑王能去的所有位置(包括原地),全都处于白方的攻击范围内。只要有一个位置安全,白方就不能获胜。
棋盘坐标:横坐标 a-h,纵坐标 1-8。比如 a1 是左下角,h8 是右上角。
示例局面:白车₁=a6 白车₂=b4 白王=c8 黑王=a8(样例 1)
1 / 5