2751 - 海盗的财宝

题目描述

海盗船长 Jack 带领他的船员们开始了一年一度的财宝分割大会,这是海盗们万众瞩目的一次会议,关系到海盗们年底能分得多少财宝。

经过了喋喋不休的一天争论, Jack 设计出了一个大家都公认的最公平的分割方案。

Jack 船长,将所有的要分割的财宝,放到一个 RC 列 ( 1\leq R,C\leq 500) 的矩阵中,矩阵中的第 i 行,第 j 列格子中的财宝金额为 Aij(1≤Aij≤4000)。

接下来由海盗们选举的最有公信力的成员 Davy 将财宝分割为 X \times Y 块,分给所有的海盗(海盗人数恰好是 X \times Y )。

分割方式为:先水平的在矩阵上画 X-1 条不重复的分割线(沿整数坐标切割),把财宝分割为 X 行。再把每一行独立的Y-1 条不重复的分割线(沿整数坐标切割),从而把每一行的财宝分割成 Y 份。

虽然 Davy 是公认的对大家都很公平的人,但是为了防止 Davy 有私心,想要给自己多留, Davy 只能等大家都选完之后,要最后一份

可怜的 Davy 已经知道自己得到的那份一定不可能比其他海盗得到的更多,请你编程帮助 Davy 计算出,他得到的那份财宝,最多有多少?

例如,下面有一个 5\times4 矩阵,矩阵中每个格子的财宝金额如下:

1 2 2 1
3 1 1 1
2 1 1 3
1 1 1 1
1 1 1 1

将财宝先画 3 条横线切割为 4 行,再将每行画 1 条纵向的线,切割成 2 份,就可以将财宝分成8份。

1 2 | 2 1
---------
3 | 1 1 1
---------
2 1 | 1 3
---------
1 1 | 1 1
1 1 | 1 1

Davy 可以得到一份金额为 3 的财宝。

输入

1 行读入 4 个整数:R,C,X,Y,含义如题目所述,整数之间用空格隔开。

接下来 R 行,每行有 C 个整数,每个整数代表了初始状态下,矩阵中一份财宝的金额。

输出

输出一个整数,代表 Davy 能得到的那份财宝的最大值。

样例

输入

5 4 4 2 
1 2 2 1 
3 1 1 1 
2 1 1 3 
1 1 1 1 
1 1 1 1

输出

3

输入

7 8 1 2
768 325 13 315 31 85 136 256 
358 89 325 301 366 260 134 17 
342 372 114 219 174 283 20 391 
227 296 176 29 173 193 357 213
325 337 335 389 276 1471 41 102
374 235 314 236 5 147 210 323 
160 334 5 22 371 303 292 321 

输出

6951

输入

9 9 1 2
93 510 2926 3983 2185 213 661 348 176
207 2312 961 951 3359 957 1140 2510 337
962 3702 1393 298 2900 1763 1985 1906 171
269 2200 2768 3537 1860 2933 3860 3921 665
1812 1979 1040 867 2722 1358 158 3938 139
3372 2769 2753 3301 2378 2714 1921 3289 322
1431 2772 1247 646 2346 2855 835 1286 3338
124 1141 1203 344 2231 2372 3123 3061 190
1038 761 242 1831 630 3406 1576 3142 204

输出

62773
说明

数据范围

对于 20\% 的数据,4≤R,C≤10,X=1,Y=2

对于 50\% 的数据,4≤R,C≤10,2≤X≤R,2≤Y≤C

对于 100\% 的数据,4≤R,C≤500,2≤X≤R,2≤Y≤C1≤Aij≤4000

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 172
通过人数 78
金币数量 3 枚
难度 入门


上一题 下一题