Background
有人说要有一个万圣节题目。
Description
我们总是能在 Halloween 中看到很多有意思的东西,比如字母 H.
记第 i 行第 j 列的格子坐标为 (i,j). 请注意这个坐标表示和平面直角坐标系上的不同。
给定一个 n×m 的网格,每个格子都是白色或黑色的。定义一个 H 形,可以用四元组 (i1,i2,j1,j2) 表示,满足:
- 1≤i1<i2≤n,1≤j1<j2≤m.
- i1+i2 为偶数.
- 线段 (i1,j1)−(i2,j1), 线段 (i1,j2)−(i2,j2), 线段 (2i1+i2,j1)−(2i1+i2,j2) 这三条线段上的格子都是黑色。
求这个网格上有多少个 H. 两个 H 不同,当且仅当这两个 H 对应的四元组 (i1,i2,j1,j2) 不同。
第一行两个正整数 n,m(1≤n,m≤103).
随后一个 n 行 m 列的字符矩阵,每个字符为 #
或 .
,分别表示黑色和白色。
Output
一个非负整数表示答案。
Samples
3 3
#.#
###
#.#
1
3 2
##
##
##
1
5 5
##..#
#####
.####
#####
#.###
10
Limitation
1s, 256MiB.