题意:
一个五子棋残局,三步之内确定赢家。黑子先下,如果黑子数量多于白子输出Invalid,如果三步之内分不出胜负,或者三步之内可以
判断谁赢,按照规定输出。
输入:
31 3 3 1 3 4 0 3 5 0 3 6 0 4 4 1 4 5 1 4 7 0 5 3 0 5 4 0 5 5 1 5 6 1 5 7 1 5 9 1 6 4 1 6 5 1 6 6 0 6 7 1 6 8 0 6 9 0 7 5 1 7 6 0 7 7 1 7 8 1 7 9 0 8 5 0 8 6 1 8 7 0 8 8 1 8 9 0 9 7 1 10 8 0 1 7 7 1 1 7 7 0 0
输出:
Place white at (5,8) to win in 3 moves. Cannot win in 3 moves. Invalid.
分析:
1、判断先手是否能在一步走赢,即是否存在一空白格子使得先手的棋子有连续的5个。
2、判断对手是否存在两个空白格子使得他能够得到连续的5个棋子,因为这样,先手就不能堵住后手。
3、枚举任一空白格子放先手棋子,则只需对手方不存在“一空白格子使得棋子有连续的5个”,且先手方此时有"两个空白格子使得他能
够得到连续的5个棋子",则先手胜。(攻防转换)
代码: