2014 Canadian Computing Competition, Stage 2

Day 1, Problem 1: Troyangles

Troy loves triangles. He especially likes counting triangles. He has an N-by-N grid consisting of either "." or "#" characters. Help him count the number of triangles formed only by "#" characters in the grid. Triangles are of the form

              #          
      #      ###         
#,   ###,   #####,   etc.

More formally, a triangle of height h consists of h rows for some positive integer h. The i-th row contains 2i − 1 "#" characters for i = 1, …, h. The rows are centred above each other so that they are symmetrically about a vertical line down their middle.

Input

The first line contains the number N (1 ≤ N ≤ 2000) representing the size of the grid. The next N lines each contain N characters as described above.

You can assume that for test cases worth 20% of the marks, N ≤ 50.

Output

Output the number of triangles in the grid.

Sample Input

5
.....
.###.
.###.
#####
.....

Sample Output

16

Explanation

There are 11 triangles of height one, 4 triangles of height two and 1 triangle of height three.

All Submissions
Best Solutions


Point Value: 10 (partial)
Time Limit: 1.00s
Memory Limit: 64M
Added: May 17, 2014

Languages Allowed:
C++03, PAS, C, HASK, ASM, RUBY, PYTH2, JAVA, PHP, SCM, CAML, PERL, C#, C++11, PYTH3

Comments (Search)

It's quiet in here...