小 X 在地上玩积木,每块积木都是一个 1 \times 1 \times 1 的正方体。地面可以看成一个 n \times m 的网格,其中每一小格内都整齐地从下到上堆着若干块积木。其中第 i 行第 j 列中有 h[i][j]块积木。
现在小 X 想要拿走一些积木,使得剩下来的积木组成一个正方体,正方体指的是长宽高都相同的长方体。
小 X 想问你他最少拿掉多少块积木才能使得最后剩下来的积木组成一个正方体。
第一行,2 个整数 n 和 m 表示地面的大小。
接下来 n 行,每行 m 个非负整数。第 i 行第 j 个数表示 h[i][j]。
一行一个整数表示答案。
3 3 2 2 1 3 2 2 3 1 2
10
5 5 4 4 3 4 3 3 4 3 3 3 3 3 1 4 4 3 4 4 3 3 4 3 4 4 4
77
【样例1解释】
拿完之后每个位置的积木数为:
2 2 0 2 2 0 0 0 0
一共拿掉(2-2)+(2-2)+(1-0)+(3-2)+(2-2)+(2-0)+(3-0)+(1-0)+(2-0)=1+1+2+3+1+2=10 块积木。
【数据范围与解释】
对于所有测试点 1 \leq n,m \leq 1000 ,0 \leq h[i][j] \leq 1000
对于测试点 1-3 : 1 \leq n,m \leq 50
对于测试点 4-6 : 1 \leq n,m \leq 200
对于测试点 7-9 : 1 \leq n,m \leq 1000,0 \leq h[i][j] \leq 20
23年常州市赛T7