http://noi.openjudge.cn/ch0201/755/
翻转游戏
描述:
翻转游戏在一个4*4的矩形场地内进行,其16个正方形中每一个都放着一个两面棋子,每个棋子一面是黑色,另一面是白色,每个棋子是黑色或白色一面朝上。每一轮游戏你可以翻转3到5个棋子,从而将其上侧的颜色由黑色改成白色,反之亦然。每回合根据以下的规则选择要翻转的棋子。
1.选择16个棋子的任何一个。
2.将选择的棋子以及它邻近的即上下左右的棋子都翻面。
思考下面例子:
bwbw
wwww
bbwb
bwwb
b代表黑面,w代表白面。如果我们选择第三行第一个棋子,这个矩形将会变成
bwbw
bwww
wwwb
wwwb
游戏的目标就是将棋子都翻成白面或黑面。你要编写一个程序来计算完成游戏目标所需要的最小游戏回合。
输入:输入由 4 行组成,每行包含 4 个字符"w"或"b",表示游戏场位置。
输出:输出一个整数即最小游戏回合数,如果一开始就满足目标,就输出0,如果完成不了就输出impossible。