#P10022. 轰炸

轰炸

轰炸

Problem Description

战场局势可以用一个 n×mn \times m0101 矩阵表示,ai,j=0a_{i,j}=0 代表 (i,j)(i,j) 这个位置被敌军占领,ai,j=1a_{i,j}=1 代表 (i,j)(i,j) 这个位置被我军占领。 你可以指挥飞机进行轰炸,轰炸有范围参数 p,qp,q,其中 1pn,1qm1 \le p \le n,1 \le q \le m,一次轰炸形如:选择 1xnp+1,1ymq+11 \le x \le n - p + 1,1 \le y \le m - q + 1,摧毁以 (x,y)(x,y) 为左上角,(x+p1,y+q1)(x+p-1,y+q-1) 为右下角的矩形区域中的所有单位。 你可以进行任意多次轰炸,一个位置的单位不会被多次摧毁,你希望在所有我军单位均未被摧毁的情况下,摧毁至少 kk 个敌军单位。 请计算有多少种范围参数二元组 (p,q)(p,q) 使得该目标可以被达成。

Input

本题有多组数据。第一行一个正整数 TT1T15001\le T\le 1500),表示测试数据组数。 对于每组数据,第一行三个整数 n,m,kn,m,k1n,m3000,0knm1 \le n,m \le 3000,0 \le k \le nm)。 接下来 nn 行,每行一个长度为 mm0101 字符串描述矩阵 aa 的第 ii 行。 保证 nm2.2×107\sum nm \le 2.2 \times 10^7

Output

对于每组数据,输出一行一个整数表示可以达成目标的参数二元组数量。

Sample Input

3
5 4 4
1100
1011
0111
1001
1000
3 5 1
00010
11111
11000
5 2 4
10
01
01
10
10

Sample Output

4
3
2

Source

2024“钉耙编程”中国大学生算法设计超级联赛(10)