#992. [蓝桥杯]勇士
[蓝桥杯]勇士
题目描述:( 注.input()输入函数的括号中不允许添加任何信息)
一个n行n列的网格,表示魔塔。魔塔的每个格子中有一个怪物或一瓶药水。一名勇士,有初始体力值,从魔塔左上角入口的格子进入到右下角出口的位置夺取宝石,夺取宝石的规则如下 1、勇士只能从魔塔内走到右下角且每次只能向下或向右走一格; 怪物格子中有一个负整数,表示勇士进入该格子后,会损失对应体力值:药水格子中有一个正整数,表示勇士进入该格子后,会增加对应体力值; 例如:怪物格子中的负整数为-4时,表示勇士进入该格子后,会损失4体力值;药水格子中的正整数为2时,表示勇士进入该格子后,会增加2体力值。 夺取宝石全程,勇士须保持体力值大于0,否则夺取宝石失败。3、 给定n行n列的魔塔,请计算勇士最少需要多少初始体力值才可以成功夺取宝石。
例如:n=3;3行3列的魔塔如下:
勇士按照以下路线以最少的初始体力值夺取宝石:
按照-1、2、-4、2、-2的路线,当勇士初始体力值为4时;
第一步:勇士进入-1格子,损失1体力值,体力值变为3;
第二步:勇士接着进入2格子,增加2体力值,体力值变为5;
第四步:勇士接着进入2格子,增加2体力值,体力值变为3;
第五步:勇士接着进入-2格子,损失2体力值,体力值变为1。
勇士成功夺取宝石,且全程体力值均大于0,最少需要4初始体力值。
输入描述
第一行输入一个整数n(2 ≤ n ≤200),表示魔塔的行数和列数;
接下来输入n行,每行n个整数(-1000 ≤ 整数 ≤ 1000,整数不能为0),
其中负整数表示勇士进入该怪物格子会损失的体力值,
正整数表示勇士进入该药水格子会增加的体力值,整数之间以一个空格隔开。
输出描述
输出一个整数,表示勇士最少需要的初始体力值。
样例
3
-1 1 -6
2 -4 1
-5 2 -2
4
时间内存
时间限制:3000MS 内存限制:58824KB