//两个点WA
#include<bits/stdc++.h>
using namespace std;
int n,ans;
char a[305][305];
int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
void dfs(int x,int y)
{
    for(int k=0;k<4;k++)
    {
        int nx=x+dir[k][0],ny=y+dir[k][1];
        if(a[nx][ny]!='.')continue;
        a[nx][ny]='*';
        if(nx==1&&ny!=1)ans+=9;
        if(ny==1&&nx!=1)ans+=9;
        if(nx==n&&ny!=n)ans+=9;
        if(ny==n&&nx!=n)ans+=9;
        for(int i=0;i<4;i++)
            if(a[nx+dir[i][0]][ny+dir[i][1]]=='#')ans+=9;
        dfs(nx,ny);
    }
    
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            cin>>a[i][j];
    dfs(1,1);
    cout<<ans<<endl;
    return 0;
}

0 条评论

目前还没有评论...

信息

ID
1516
难度
9
分类
(无)
标签
递交数
7
已通过
1
通过率
14%
被复制
2
上传者