#codethanksfestival2015h. [code_thanks_festival_2015_h]穴あきケーキ
[code_thanks_festival_2015_h]穴あきケーキ
问题描述
圣诞节快要到了。你决定为朋友做一个圣诞蛋糕,但是这次是个特别的蛋糕。
蛋糕是一个矩形的形状,有 行 列, 行 列的区域被称为区域 (, )。吃掉区域 (, ) 的话,可以得到 卡路里。左上角的区域是 (, ),右下角的区域是 (, )。
你要按照以下步骤将蛋糕变成带洞的蛋糕:
- 首先,选择四个整数 , , , $d (1 ≦ a < b ≦ R, 1 ≦ c < d ≦ C, b - a ≧ 2, d - c ≧ 2)$。然后从蛋糕中切出一个以 (, ) 为左上角、(, ) 为右下角的矩形区域。
- 在上一步切出的部分中,选择一个不在边缘的区域(记作 (, ) ()),将其删除,剩下的部分就是带洞的蛋糕。
带洞蛋糕的摄入卡路里是由构成它的区域上的卡路里总和确定的。
你的健康导向的朋友希望通过吃带洞的蛋糕来得到恰好 卡路里。你决定计算满足条件的带洞蛋糕的总数,也就是满足上述条件的六个整数 , , , , , 一共有多少种选择。
输入
输入数据以以下格式从标准输入中给出。
:
- 第 行,用空格分隔的三个整数 、 和朋友想要摄入的卡路里值 。
- 第 行至第 行,每行包含 个表示蛋糕卡路里的数字字符。第 行第 个字符 表示区域 (, ) 加入蛋糕后增加的卡路里数。
输出
输出一个整数,表示满足条件的带洞蛋糕的总数。在输出的末尾要包含一个换行符。
示例1
输入:
4 5 14
54311
11211
17312
11119
输出:
2
蛋糕的卡路里分布如下所示:
5 4 3 1 1
1 1 2 1 1
7 3 1 2 1
1 1 1 1 9
例如,选择 = , = , = , = ,切出下方区域:
1 1 2 1 1
7 3 1 2 1
然后选择 = , = 将其删除,得到带洞蛋糕:
1 1 2 1 1
* * 3 1 1
此时卡路里总和为 = ,满足条件。
还有另一个可行的选项是选择 = , = , = , = , = , = 。
示例2
输入:
6 7 8
1111116
1111111
1111115
1113111
1211111
1111141
输出:
7
即使带洞蛋糕构成的区域卡路里分布相同,只要切割的位置和开洞的位置不同,就被视为是不同的蛋糕。
示例3
输入:
3 3 9
211
121
112
输出:
0
可能没有满足条件的带洞蛋糕。
示例4
输入:
8 8 15
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
输出:
100