UVA10383 单后对单车 Queen vs Rook

题目描述

国际象棋特级大师也往往为单后对单车的残局而苦恼。您的任务是写一个程序来计算如果两边都采取最优的走法,残局的结果如何。 如果某一方将获胜,您应该输出获胜一方最少需要几步才能将死对方。然后您需要输出行棋方的所有最优走法。例如,如果行棋方至少在4步 之后才能将死对方,那么您应该输出所有能在4步内将死对方的方案的第一步。 同理,如果行棋方的最优策略也在7步之内被将死,那么您应该输出所有可以在7步之后被将死的走法的第一步,而不应该输出会被更快将死的 走法的第一步。 如果双方都采取最优策略会导致和棋,那么请您输出所有可以和棋的走法的第一步。

输入格式

输入文件的第一行包含一个整数 $ n (0 < n

输出格式

对于每组测试数据,先输出下面三行中的一个 + White mates in `x` + Black mates in `x` + Draw 其中`x`是双方都采取最优策略条件下,某一方取得胜利的最少步数。例如,如果轮到白棋走,但是他已经被将死了,那么应该输出`Black mates in 0`. 在这之后,您应该输出行棋方的所有最优方案的第一步,用简记法表示,需要加上吃子(`x`),将军(`+`),将死(`#`)。这些步应该按字典序输出, 参见样例。 如果行棋方被将死,那么输出一个空行。 在每组测试数据之后,输出一个空行。