Fox Ciel has a board with n rows and n columns. So, the board consists of n × n cells. Each cell contains either a symbol '.', or a symbol '#'.
A cross on the board is a connected set of exactly five cells of the board that looks like a cross. The picture below shows how it looks.

Ciel wants to draw several (may be zero) crosses on the board. Each cross must cover exactly five cells with symbols '#', and any cell with symbol '#' must belong to some cross. No two crosses can share a cell.
Please, tell Ciel if she can draw the crosses in the described way.
The first line contains an integer n (3 ≤ n ≤ 100) — the size of the board.
Each of the next n lines describes one row of the board. Thei-th line describes the i-th row of the board and consists of n characters. Each character is either a symbol '.', or a symbol '#'.
Output a single line with "YES" if Ciel can draw the crosses in the described way. Otherwise output a single line with "NO".
5 .#... ####. .#### ...#. .....
YES
4 #### #### #### ####
NO
6 .#.... ####.. .####. .#.##. ###### .#..#.
YES
6 .#..#. ###### .####. .####. ###### .#..#.
NO
3 ... ... ...
YES
Note
In example 1, you can draw two crosses. The picture below shows what they look like.

In example 2, the board contains 16 cells with '#', but each cross contains 5. Since 16 is not a multiple of 5, so it's impossible to cover all.
思路:这个题只需看是否满足一个十字,如果满足,就将满足的十字赋值为“.”,再继续向下判断。。
就像当str[i][j]是‘#’,时,判断是否str[i+1][j-1],str[i+1][j],str[i+1][j+1],str[i+2][j]都为‘#’,如果是,赋值为‘.’!
注意:1.防止数组溢出。
2.这也是我好犯的错误,当二维数组是字符型是,记住‘\n’也属于,所以不要忘记getchar()~
#include<stdio.h>
int main()
{
char a[200][200];
int i,j,m,n;
while(scanf("%d\n",&n)!=EOF)
{
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
scanf("%c",&a[i][j]);
}
getchar();
}
int ss=0;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if(a[i][j]=='#')
++ss;
}
}
m=ss/5;
if(ss==0) printf("YES\n");
else if(ss%5!=0) printf("NO\n");
else
{
int s=0;
for(i=0; i<n-2; i++)
{
for(j=1; j<n; j++)
{
if(a[i][j]=='#')
{
if(a[i+1][j-1]=='#'&&a[i+1][j]=='#'&&a[i+1][j+1]=='#')
{
if(a[i+2][j]=='#')
{
++s;
a[i][j]='.';
a[i+1][j-1]='.';
a[i+1][j]='.';
a[i+1][j+1]='.';
a[i+2][j]='.';
}
}
}
}
}
if(s==m)
printf("YES\n");
else
printf("NO\n");
}
}
return 0;
}