考虑一个象棋残局,其中红方有n(2≤n≤7)个棋子,黑方只有一个将。红方除了有一个帅(G)之外还有3种可能的棋子:车(R),马(H),炮(C),并且需要考虑 输入所有棋子的位置,保证局面合法并且红方已经将军。你的任务是判断红方是否已经把黑方将死。关于中国象棋的相关规则请参见原题。
原题地址:Uva1589
输入包含的测试用例不超过40个。对于每个测试用例,第一行包含三个整数,表示红色块的数量N(2<=N<=7)和黑色常规的位置。下面的n行包含n个红色部分的详细信息。每一行都有一个字符和两个整数,表示工件的类型和位置(char'G'表示一般,R'表示战车,H'表示马,C'表示大炮)。我们保证情况是合法的,红方已经交付了支票。
两个测试用例之间有一个空行。输入以0 0 0结束。
For each test case, if the situation is checkmate, output a single word ‘YES’, otherwise output the word ‘NO’. 对于每个测试用例,如果情况是checkmate,则输出一个单词“YES”,否则输出单词“NO”。
2 1 4 G 10 5 R 6 4 3 1 5 H 4 5 G 10 5 C 7 5 0 0 0
YES NO
来源: ACM/ICPC Fuzhou 2011