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 翻译