为什么要征服山?——因为山就在那里。
作为一名勇敢的探险者,你悄悄来到了一座小岛寻找传说中的海盗的宝藏。终于,你看见宝藏就在你的前方不远处。但是你不能贸然前进,因为路上有着强大的魔法结界。这些结界根据能量的不同分为P种,踏入每种结界,你都会受到一定的伤害。为了拿到宝藏,这些伤害算不 了什么。但是你要尽可能地减少伤害,请你设计一条路线,使你穿越结界获取宝藏受到的伤害最少。
下面是一个魔法结界能量示意图,结界是一个正方形,内部有P种不同的能量,每种字母表示一种能量。你从最上端开始走,每次可以走到与你所在的位置上下左右相邻的位置,或者在同种能量结界中任意传送。重复进入同一种能量结界不会再次受到伤害。
|AAABBC|
|ABCCCC|
|AABBDD|
|EEEEEF|
|EGGEFF|
|GGFFFF|
你有H点生命值,请你在贸然行动之前先判断是否能够活着(生命值大于0)穿越结界拿到宝藏,如果能够,请求出最多剩余的生命值。
输入数据有若干行;
第一行有三个非负整数N、P、H。N为结界的边长,P为不同的能量结界的数量,H为你的生命值。
第2 - P+1行,每行一个非负整数,表示走到该种能量结界受到的伤害值。
第P+2至第P+2+N行,每行N个正整数,为地图上该单元格的能量种类的编号,编号为1…P。
如果你能够穿越结界到达对岸的宝藏,输出最多剩余的生命值。如果不能穿越,输出NO。
6 7 10 3 1 2 2 1 1 3 1 1 1 2 2 3 1 2 3 3 3 3 1 1 2 2 4 4 5 5 5 5 5 6 5 7 7 5 6 6 7 7 6 6 6 6
7
对于40%数据,4\leq N\leq 10;
对于100%数据,4\leq N\leq 50、1\leq P\leq N^2、0\leq H\leq 2\times 10^8。
时间限制 | 1 秒 |
内存限制 | 128 MB |