蓝桥杯青少组C++编程国赛题:翻卡片
小蓝在玩翻卡片游戏,每张卡片一面写着大写字母"A",另一面写着大写字母"B"。首先将卡片排成一个N*N的矩阵,有的卡片是A面朝上,有的卡片是B面朝上。
现给定N的值,及N*N矩阵中每张卡片的状态,请你帮助小蓝挑选一张B面的卡片,翻转成A面,使得翻转后的上、下、左、右四个方向相连的A面卡片最多,并将相连最多的卡片数量输出。
N=3,3*3的矩阵中的卡片状态如下:
A B B
A B A
B A B
选择第二行第二列的B面卡片,翻转为A面,可以使翻转后四个方向相连的A面卡片最多,为5张,示意如下:
A B B
A A A
B A B
// 连通的A共有5个:(0,0),(1,0),(1,1),(1,2),(2,1)
第一行输入一个正整数N(2≤N≤50),表示矩阵的行数和列数。 第二行开始输入N行,每行输入N个字符('A'或者'B'),表示矩阵中卡片状态,字符之间以一个空格隔开。
输出一个整数,表示翻转后矩阵中上、下、左、右四个方向相连的最多A面卡片张数。
3
A B B
A B A
B A B
5