题目来源:OpenJudge - 755:Flip Game
翻译如下:
描述:
翻转游戏在矩形4x4场地上进行,其16个正方形中的每一个都放置了两面棋子。每件作品的一面是白色的,另一面是黑色的,每件作品都是黑色或白色的。每回合你翻转3到5块,从而改变其上侧的颜色从黑色变成白色,反之亦然。每回合根据以下规则选择要翻转的棋子:
- 从 16 件商品中选择任意一件。
- 将所选片段以及所有相邻片段向左、向右、向顶部和向所选片段的底部(如果有)翻转。
考虑以下位置作为示例:
bwbw
wwww
bbwb
bwwb
这里"b"表示将黑色面朝上放置的棋子,"w"表示将白色面朝上放置的棋子。如果我们选择从第3行翻转第1块(这个选择显示在图片中),那么字段将变成:
bwbw bwww
wwwb wwwb
游戏的目标是将所有棋子的白色面向上翻转或所有棋子的黑色面向上翻转。您将编写一个程序,该程序将搜索实现此目标所需的最小回合数。
输入:
输入由 4 行组成,每行包含 4 个字符"w"或"b",表示游戏字段位置。
输出:
向输出文件写入单个整数 - 从给定位置实现游戏目标所需的最小回合数。如果目标最初已实现,则写 0。如果不可能实现目标,那就写"不可能"这个词(不带引号)。