问题 6440 --在火的远处

6440: 在火的远处

时间限制: 1 Sec  内存限制: 256 MB
提交: 1  解决: 1
[提交][状态][命题人:]

题目描述

「东西到手了,交给你断后咯。」
通讯器里传来同伴的声音。
他看向周围,废弃的巨型建筑内,残存的敌人仍在复杂的结构中穿行,向他逼近。
「稍等片刻。」
一瞬寂静之后,宛如末日灾难的剧烈爆炸冲天而起。气浪吹起尘埃,烟云四散,致人目盲的强光令夜空亮如白昼。
「你知道那里面都是他们故意设置的火药吧?」
斗篷猎猎张开,他如同完成了一场悠闲散步。
「当然。」
「所以点燃他们,我只需当那根火柴就好。」

萨姆正在清理街道上的障碍物。
街道可以视为 4 行 n 列的字符矩阵 M ,其中 '.' 表示空地, '*' 表示障碍物。
每次萨姆可以施展战技,将一个 k×k (其中1≤k≤4) 大小的子矩阵内的所有障碍物清除,即将其中所有 '*' 变成 '.' ,同时花费 a[k] 个战技点。
求最少需要花费多少战技点,才能将所有障碍物清除。

输入

第一行包含一个整数 n (4≤n≤1000) ,表示列数。
第二行包含四个整数 a[1],a[2],a[3],a[4] (1≤a[i]≤1000),分别表示不同大小的矩阵对应的战技点花费。
接下来四行,每行包含 n 个字符,表示字符矩阵 M ,其中 M 仅由 '.', '*' 构成。

输出

一行包含一个整数,最小战技点花费。
样例输入
Copy
样例1:
4
1 10 8 20
***.
***.
***.
...*

样例2:
7
2 1 8 2
.***...
.***..*
.***...
....*..

样例3:
4
10 10 1 10
***.
*..*
*..*
.***
样例输出
Copy
样例1:
4
1 10 8 20
9

样例2:
7
2 1 8 2
3

样例3:
4
10 10 1 10
2

提示

来源

[提交][状态]