题目描述
给定 $n$ 行 $m$ 列共 $n \times m$ 个硬币,对于任意一个硬币,我们将其价值视为与其相邻(指上、下、左、右相邻)的硬币中与其正反相同的硬币数的平方。
你可以进行任意次操作,每次可以选择任意一行并将该行的硬币全部翻转。
求所有硬币的价值之和最大可能是多少。
输入格式
输入的第一行包含两个正整数 $n, m$,用一个空格分隔。
接下来 $n$ 行,每行包含 $m$ 个 0 或 1,表示给定的 $n \times m$ 个硬币。
样例输入 #1
4 4
1010
1111
1011
1100
提示
#### 【样例说明】
如图,实线表示正面,虚线表示反面,翻转最后一行可以得到最大价值和:

#### 【评测用例规模与约定】
- 对于 $40\%$ 的评测用例,$n, m \leq 20$;
- 对于所有评测用例,$1 \leq n, m \leq 1000$。
来源
第十六届蓝桥杯大赛软件类省赛第二场C/C++大学B组