Description
Farmer John有一个长方体形状的废料堆,这个废料堆是由A*B*C个废料块组成的,每个废料块都有一个值,废料块的值可能是正数、负数或者为0.
如果废料块的值为0,说明这个废料块既没有价值但也不是有害的,如果这个废料块的值是负值,说明这个废料块既没有价值而且还是有害的。
Farmer John觉得他现在的整个废料堆中,有害的废料块太多了,所以他需要减小这个废料堆的大小,他希望留下的废料堆仍然是个长方体,体积比原始的废料堆的体积小,而且留下的废料堆中的废料块的价值总和要最大。
需要你帮他找到满足要求的子长方体。
Input
输入文件的第一行,是一个整数,表示测试数据的组数,最大值是15.测试数据组之间用一个空行隔开。
对于每组测试数据:
第一行是空格隔开的三个整数,分别代表A B C,其中1≤A,B,C≤20
接下来一行包含A*B*C个数字,代表废料堆中每个废料块的值,每个数字的绝对值小于等于2^31。
如果给每个废料块赋予一个空间坐标,如果一个角为(1,1,1),对角线的另一端为(A,B,C),则这些废料块出现的顺序为
(1,1,1),(1,1,2),...,(1,1,C)
(1,2,1),...,(1,2,C),...,(1,B,C)
(2,1,1),...,(2,B,C),...,(A,B,C)
Output
对于每组测试数据,输出一行,一个整数,输出最大子长方体的价值和。
1
2 2 2
-1 2 0 -3 -2 -1 1 5