3422.Empty Rectangles

Time Limit: 1s Memory Limit: 256MB

You've got an n \times m table (n rows and m columns), each cell of the table contains a "0" or a "1".

Your task is to calculate the number of rectangles with the sides that are parallel to the sides of the table and go along the cell borders, such that the number one occurs exactly k times in the rectangle.

Input Format(From the terminal/stdin)

The first line contains three space-separated integers n, m and k (1 \le n,m \le 2500, 0 \le k \le 6) - the sizes of the table and the required number of numbers one.

Next n lines each contains m characters "0" or "1". The i-th character of the j-th line corresponds to the character that is in the j-th row and the i-th column of the table.

Output Format(To the terminal/stdout)

Print a single number - the number of rectangles that contain exactly k numbers one.

Please, do not write the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specifier.

Sample Input 1

Copy
3 3 2
101
000
101
 · · \n
   \n
   \n
   \n

Sample Output 1

Copy
8
 \n

Sample Input 2

Copy
5 5 1
00000
00000
00100
00000
00000
 · · \n
     \n
     \n
     \n
     \n
     \n

Sample Output 2

Copy
81
  \n

Sample Input 3

Copy
5 5 6
01010
10101
01010
10101
01010
 · · \n
     \n
     \n
     \n
     \n
     \n

Sample Output 3

Copy
12
  \n

Sample Input 4

Copy
3 3 0
001
010
000
 · · \n
   \n
   \n
   \n

Sample Output 4

Copy
15
  \n

Sample Input 5

Copy
4 4 0
0000
0101
0000
0000
 · · \n
    \n
    \n
    \n
    \n

Sample Output 5

Copy
52
  \n

Submit

请先 登录

© 2025 FAQs