海盗船长 Jack 带领他的船员们开始了一年一度的财宝分割大会,这是海盗们万众瞩目的一次会议,关系到海盗们年底能分得多少财宝。
经过了喋喋不休的一天争论, Jack 设计出了一个大家都公认的最公平的分割方案。
由 Jack 船长,将所有的要分割的财宝,放到一个 R 行 C 列 ( 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
【数据范围】
对于 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≤C,1≤Aij≤4000;