问题 6403 --积木

6403: 积木

题目描述

小X在地上玩积木,每块积木都是一个1\*1\*1的立方体。地面可以看成一个n\*m的网格,其中每一小格内都整齐地从下到上堆着若干块积木。其中第i行第j列中有h[i][j]块积木。 现在小X 想要拿走一些积木,使得剩下来到积木组成一个正立方体,正立方体指的是长宽高都相同的立方体。 小X想问你他最少拿掉多少块积木才能使得最后剩下来到积木组成一个正立方体。

输入

第一行,2个整数n和m表示地面的大小。 接下来n行,每行m个非负整数。第i行第j个数表示h[i][j]。

输出

一行一个整数表示答案。

样例输入输出

输入#1 复制
3 3
2 2 1
3 2 2
3 1 2
输出#1 复制
10
输入#2 复制
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
输出#2 复制
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<=n,m<=1000,0<=h[i][j]<=1000 对于测试点1-3:1<=n,m<=50 对于测试点4-6:1<=n,m<=200 对于测试点7-9 :1<=n,m<=1000,0<=h[i][j]<=20 对于测试点10-12:1<=n,m<=1000
序号 标题 作者 发表时间 费用 订购数 操作