#3171. 分蛋糕(cake)

分蛋糕(cake)

No testdata at current.

题目描述

小项和朋友们一共 kk 个人,刚刚购买了一个长度为 mm,宽度为 nn 的矩形蛋糕,准备大伙一起分着吃,不过这个蛋糕上面的草莓不是很均匀。如果我们把这个矩形蛋糕划分成 n×mn×m 的网格,可以观察得第 ii 行第 jj 列的网格上有 ai,ja_{i,j} 颗草莓。

大家都因为草莓分配的事情争论不休,每个人都想获得更多的草莓,于是,聪明的小项想出了一个好办法,就由他自己来负责切蛋糕,不过他只能拿到最后一块蛋糕(最后一块蛋糕草莓最少)。

特别需要说明的是,小项每次只能从一块蛋糕的边缘,沿着每个网格的边缘线横切或者竖切蛋糕直到蛋糕的另外一个边缘,并且不能改变刀的移动方向从而把一块蛋糕分成两块,求出小项把整个蛋糕分成 kk 块的所有方案中,他能获得最多草莓的数量。

输入格式

从文件 cake.in 中读入数据。 第一行包含三个数字 n,m,kn,m,k,分别表示蛋糕的长度、蛋糕的宽度、及蛋糕分成的块数。 接下来 nn 行,每行 mm 个数字,每个数字 ai,ja_{i,j} 表示每个网格上的草莓数量。

输出格式

输出到文件 cake.out。 输出仅一个数字,表示小项能够获得的最大草莓数。

样例

3 3 4
4 4 2
2 9 6
6 5 3
9

样例解释

如下图切割蛋糕的方案最优(加粗黑线为切割处),4 块蛋糕的草莓数分别是 10、11、11、9。小项是最后一个取蛋糕的人,只能分得最少的草莓 9。 image

下图也是一种分蛋糕的方案,但是小项只能获得最小的那块,只能获得 8 颗草莓。 image

数据范围

对于所有测试数据有: 1n,m301\le n,m\le 300<kn×m0< k\le n×m0ai,j1000\le a_{i,j}\le 100