#dwango2016quald. [dwango2016qual_d]庭園
[dwango2016qual_d]庭園
问题描述
dwango 公司拥有一个宽敞的庭院。这个庭院被划分为 行 列的 m m 的小区域。我们用 来表示位于北边第 行、西边第 列的小区域。庭院中有许多花,每个小区域都有一个整数来表示该区域内花朵的美观程度,记为 。
我们想要通过选择至少两个小区域构成一个矩形,然后用栅栏将这两个矩形包围起来,并将未被栅栏包围的地方作为道路,使庭院更加美观。这里需要注意的是,两个选定的矩形不能有共同的小区域,但栅栏可以重叠。
庭院的整体美观程度定义为由任意一个被包围在矩形中的小区域的美观程度之和。
为了创建理想的庭院,我们需要首先计算其最大整体美观程度。请编写一个程序来计算庭院的最大整体美观程度。
输入输出
输入数据从标准输入中读取,具体格式如下:
… : …
- 第一行包含两个整数,分别表示庭院的南北方向长度 和东西方向长度 ,用空格分隔。
- 接下来的 行,每行包含 个整数,按照从北到南、从西到东的顺序,依次表示第 行的小区域的美观程度,用空格分隔。
- 满足 (, )。
评分
本问题设置了部分测试点。
- 当 且 时,满足条件的数据集可以得到 50 分。
- 当对所有测试用例都有正确答案时,除以上条件外,还可以额外获得 50 分。
输出
输出计算出的庭院的最大整体美观程度,以一行输出。末尾换行。
示例1
3 3
1 1 1
1 1 1
1 1 1
输出示例1
9
当使用两个矩形覆盖整个庭院时,美观程度最大为 9。
示例2
3 3
-1 -1 -1
-1 -1 -1
-1 -1 -1
输出示例2
-2
遗憾的是,庭院的美观程度可能是负数。请注意,矩形必须包含至少一个小区域。
示例3
2 3
5 -1 8
-1 4 -1
输出示例3
16
例如,以下是一种可能的栅栏设置。
示例4
4 4
5 2 -3 2
3 8 -3 -10
4 5 3 2
-5 -3 3 5
输出示例4
40