CF828B Black Square
题目描述
Polycarp 有一张尺寸为 $n \times m$ 的棋盘纸。Polycarp 已经将其中一些格子涂成了黑色,其余的格子则保持为白色。受到马列维奇《黑方块》的启发,Polycarp 想将最少数量的白格子涂成黑色,使得所有黑色格子正好构成一个边平行于棋盘边界的正方形。
你需要确定,最少需要将多少个格子涂成黑色,才能使所有黑色格子恰好构成一个正方形,并且正方形外的所有格子都是白色。正方形的边长应为正整数。
输入格式
第一行输入两个整数 $n$ 和 $m$($1 \leq n, m \leq 100$),表示棋盘的尺寸。
接下来的 $n$ 行,每行包含 $m$ 个字母 'B' 或 'W',表示初始格子的颜色。如果该字母为 'B',则相应的格子为黑色;否则为白色。
输出格式
输出一个整数,表示最少需要将多少个格子从白色涂成黑色,才能使所有黑色格子正好成为一个边平行于棋盘边界的正方形。正方形外的所有格子都应为白色。如果无法实现,输出 -1。
说明/提示
在第一个样例中,需要将 $5$ 个格子($ (2,2)$,$(2,3)$,$(3,2)$,$(3,3)$ 和 $(4,2)$)涂成黑色。这样就可以构成一个边长为 $3$,左上角在 $(2,2)$ 的正方形。
在第二个样例中,所有格子都已经被涂成黑色,并且形成了一个矩形,不可能得到一个正方形。
在第三个样例中,所有格子都是白色,因此只需将任意一个格子涂成黑色即可。
由 ChatGPT 5 翻译