만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

정삼각형

시간 제한2초메모리 제한512 MB

요약
N×N 격자에 놓인 소들 가운데 맨해튼 거리가 모두 같은 세 소의 조합 수를 구합니다. N은 최대 300입니다.
난이도

보통10점 중 6점

유형
수학, 해시맵, 구현
정답자
아직 제출이 없습니다

문제

Farmer John의 목장은 N×NN\times N 크기의 정사각 격자(1≤N≤3001\le N\le 300)이며, 모든 1≤i,j≤N1\le i,j\le N에 대해 위치 (i,j)(i,j)로 나타낸다. 각 칸에 소가 한 마리 있으면 '*', 없으면 '.'이다.

FJ는 목장의 아름다움이 서로 같은 거리에 있는 소 세 마리의 수, 즉 정삼각형을 이루는 세 마리의 수에 정비례한다고 생각한다. 모든 소가 정수 좌표에 있으므로 유클리드 거리로는 그런 세 마리가 존재할 수 없다. 그래서 FJ는 맨해튼 거리를 쓰기로 했다. (x0,y0)(x_0,y_0)와 (x1,y1)(x_1,y_1) 사이의 맨해튼 거리는 ∣x0−x1∣+∣y0−y1∣|x_0-x_1|+|y_0-y_1|이다.

격자가 주어졌을 때 정삼각형을 이루는 세 마리의 수를 구하라.

입력

첫 줄에 정수 NN이 주어진다. 1≤i≤N1\le i\le N인 각 ii에 대해 i+1i+1번째 줄에는 '*'와 '.'로 이루어진 길이 NN의 문자열이 주어진다. jj번째 문자는 위치 (i,j)(i,j)에 소가 있는지 나타낸다.

출력

답을 나타내는 정수 하나를 출력한다. 답은 부호 있는 32비트 정수에 담긴다.

힌트

소가 세 마리 있고, 각 쌍의 맨해튼 거리가 모두 2이므로 이 세 마리는 정삼각형을 이룬다.

예제1

  1. 예제 1

    입력
    3
    *..
    .*.
    *..
    
    예상 출력
    1