#P2357. Labyrinth

    ID: 1358 传统题 1000ms 256MiB 尝试: 3 已通过: 1 难度: 10 上传者: 标签>计算几何Ural Collegiate Programming Contest 1999

Labyrinth

题目描述

迷宫的管理部门决定在新赛季开始时使用新的墙纸。为此,他们需要一个程序来计算迷宫内墙壁的表面积。这项任务就交给你了!

迷宫由一个 N×NN \times N 的矩阵表示(3N333 \leq N \leq 33,你看,‘33’是一个神奇的数字!)。矩阵中的某些单元格包含点字符(.'.'),表示一个空的正方形。其他单元格包含井号字符('#'),表示由巨石块填充的墙壁正方形。所有正方形的尺寸相同,均为 3×33 \times 3 平方米。

墙壁围绕迷宫构建(除了左上角和右下角的入口处),并在包含井号字符的单元格上构建。不构建其他墙壁。输入矩阵的左上角和右下角单元格始终是点字符。

你的任务是计算迷宫内墙壁可见部分的表面积。换句话说,就是迷宫访客可见的墙壁表面的总面积。注意,任何两个相邻的墙壁块之间没有孔洞可以窥视或穿过。如果两个墙壁块在任何角落接触,则认为它们是相邻的。所有墙壁的高度均为 33 米。

输入格式

输入的第一行包含一个数字 NN。接下来的 NN 行每行包含 NN 个字符。每行描述迷宫矩阵的一行。每行中仅使用点字符和井号字符,并且每行以换行符结束。输入中不会出现空格。

输出格式

你的程序应输出一个整数——所需墙纸的精确表面积值。

示例输入 1

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

示例输出 1

198

来源

19991999年乌拉尔大学生程序设计竞赛