1562: 火力网

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:18 解决:12

题目描述

    有一个正方形的城市,城市里有笔直的街道。城市的地图就是一个n行、n列的正方形的框图。其中的每行或每列可代表一条街道或者是墙。

    城中有些碉堡,它有四个开口,每个开口分别朝向东南西北,并且每个开口可以进行射击。假定碉堡开口射出的子弹威力足够大,可以摧毁在其飞行路径中的碉堡。但是不能穿透墙。

你的任务就是在城市中放置尽可能多的碉堡,使其任意两个城堡之间不能相互射击到。正确的放置方案是:若两个碉堡之间没有墙隔断,没有两个碉堡在同一条水平线和垂直线上。

 

下面以一个4*4的城市框图为例:

 

以上共有5副图。第1幅图是空的框图,没放任何碉堡;第23幅图是正确的放置方案;第45幅图是错误的放置方法。对于这样的一个城市地图,所能放置的碉堡数最多是5。第2幅图就是一种放置方法,当然也有其它的放置方案。

你的任务就是给定一个城市的地图,计算出正确放置碉堡的最大数目。

 

输入

第一行整数nn<=4),接下来n行数据表示城市的地图信息,其中‘.’表示空区域,‘X’表示墙

输出

所能放置碉堡的最大数目

样例输入 复制

4
.X..
....
XX..
....

样例输出 复制

5