#L3266. USACO 2020.2 Platinum」Equilateral Triangles

USACO 2020.2 Platinum」Equilateral Triangles


题目描述

Farmer John 的牧场可以被视作一个 N×NN \times N 的网格。
对于网格中的每一个单元格,用 * 表示这个单元格里有一头牛,而 . 表示这个单元格里面没有牛。
Farmer John 认为他牧场的美观度正比于这些牛形成的等边三角形数量,其中定义这种等边三角形为三头相互之间的距离相等的牛组成的无序三元组。

然而,Farmer John 最近才发现他的坐标全是整数,在这种情况下的欧几里得距离不可能存在这种美观的三元组,因此他选用了曼哈顿距离
形式化地说,点 (x0, y0)(x_0,~y_0) 与点 (x1, y1)(x_1,~y_1) 之间的曼哈顿距离为 x0x1+y0y1|x_0-x_1|+|y_0-y_1|

给出这个网格,代表牛的位置,请求出无序三元组的数量。


输入格式

第一行一个整数 NN
接下来 NN 行,每行一个长度为 NN 的字符串,仅包含字符 *.,表示网格。


输出格式

输出一个整数,表示满足条件的三元组数量。


样例

输入

3
*..
.*.
*..

输出

1

解释
牧场中有三头牛,位置分别是 (1,1)(1,1)(2,2)(2,2)(3,1)(3,1)
它们两两之间的曼哈顿距离均为 22,因此形成一个等边三角形。


数据范围与提示

除样例外还有 1414 组数据,NN 分别为: $50,~75,~100,~125,~150,~175,~200,~225,~250,~275,~300,~300,~300,~300$。