CGY 是一个下棋高手,现有一个 4 \times 4 的棋盘,上面放着 16 颗双面棋,一面是黑色,另一面是白色。CGY 可以主动翻转棋盘中的任意一颗棋子,某颗棋子被主动翻转后,会使它上下左右四颗棋子被动翻转(如果存在的话)。当所有棋子都白色朝上或者黑色朝上时,则视作目标完成。GGY 觉得这个问题没有挑战性,现在请你设计程序计算出完成目标的最小主动翻转次数。
输入
输入包括 4 行,每行包括 4 个字符 a
或者 b
,a
表示白色,b
表示黑色。
输出
输出包括一行,输入完成目标的最小主动翻转次数,如果无论怎么样翻转都无法完成目标则输出 Impossible
。
样例
标准输入 复制文本 |
bbbb bbbb bbab baaa |
标准输出 复制文本 |
1 |
来源
2019 欢送 (迫害) CGY 杯程序设计竞赛