#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
using
namespace
std;
string map[5];
int
ANS,n;
int
wall[5][5],mark[5][5];
bool
check(
int
x,
int
y)
{
for
(
int
i=x-1;i>=0;i--)
{
if
(mark[i][y])
return
0;
if
(wall[i][y])
break
;
}
for
(
int
j=y-1;j>=0;j--)
{
if
(mark[x][j])
return
0;
if
(wall[x][j])
break
;
}
for
(
int
i=x+1;i<n;i++)
{
if
(mark[i][y])
return
0;
if
(wall[i][y])
break
;
}
for
(
int
j=y+1;j<n;j++)
{
if
(mark[x][j])
return
0;
if
(wall[x][j])
break
;
}
return
1;
}
void
DFS(
int
num)
{
if
(ANS<num)ANS=num;
for
(
int
i=0;i<n;i++)
for
(
int
j=0;j<n;j++)
if
(!wall[i][j]&&!mark[i][j]&&check(i,j))
{
mark[i][j]=1;
DFS(num+1);
mark[i][j]=0;
}
}
int
main()
{
while
(cin>>n&&n)
{
ANS=0;
memset
(wall,0,
sizeof
(wall));
memset
(mark,0,
sizeof
(mark));
for
(
int
i=0;i<n;i++)
{
cin>>map[i];
for
(
int
j=0;j<n;j++)
if
(map[i][j]==
'X'
)
{
wall[i][j]=1;
}
}
DFS(0);
cout<<ANS<<endl;
}
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步