#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
から9
までの数字である。 の左から 文字目の数字は、領域 (, ) を穴あきケーキに含めることによって増加するカロリー量 に等しい。
出力
穴あきケーキとして考えられる総数を 行に出力せよ。出力の末尾にも改行を入れること。
入力例1
4 5 14
54311
11211
17312
11119
出力例1
2
ケーキ生地は下表のようになっています。
5
4
3
1
1
1
1
2
1
1
1
7
3
1
2
1
1
1
1
9
例えば、 = , = , = , = として切り出した場合、以下の領域が切り出されます。
1
1
2
1
1
7
3
1
1
1
1
1
さらに、 = , = として穴を開けると、穴あきケーキは以下の形状となります (*
は穴を開けた場所を表す)。
1
1
2
1
1
*
3
1
1
1
1
1
このとき、摂取カロリーは、 = となり、条件を満たします。
他にも = , = , = , = , = , = のときに条件を満たします。
入力例2
6 7 8
1111116
1111111
1111115
1113111
1211111
1111141
出力例2
7
穴あきケーキを構成する領域のカロリーの配置が同じでも、切り出す場所、穴を開ける場所が異なれば異なるケーキとして数えます。
入力例3
3 3 9
211
121
112
出力例3
0
条件を満たす穴あきケーキが存在しない場合もあります。
入力例4
8 8 15
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
出力例4
100