小慕参加公司组织的寻宝挑战,在一个的格子地图上,小慕和队友抽签决定各自的位置。地图上每个格子有不同数量的积分币,部分格子设有障碍物。 挑战规则是小慕必须在最短的时间(每个单位时间只能走一步)到达队友的位置,沿途经过的格子上的积分币都可以收集,不能走有障碍物的格子,只能上下左右移动。 请问小慕在最短到达队友位置的时间内最多能拿到多少积分币(优先考虑最短时间到达的前提下尽可能多收集积分币)。
提示:带虚线的词点一下有通俗解释。
输入描述
<p> 第一行输入为N(N <= 50),N标识二维矩阵的大小 之后N行,每行有N个值,表格矩阵每个位置的值 </p> <p> 其中: </p> <p> -3:妈妈 </p> <p> -2:宝宝 </p> <p> -1:障碍 </p> <p> >=0:糖果数(0表示没有糖果,但是可以走) </p>
输出描述
输出妈妈在最短到达宝宝位置的时间内最多拿到多少糖果,行末无多余空格
示例
示例 1
输入
4 3 2 1 -3 1 -1 1 1 1 1 -1 2 -2 1 2 3
输出
9
说明:此地图有两条最短路径可到宝宝位置,都是最短路径6步,但先向下再向左可以拿到9个糖果
示例 2
输入
4 3 2 1 -3 -1 -1 1 1 1 1 -1 2 -2 1 -1 3
输出
-1
说明:此地图妈妈无法到达宝宝位置
时间限制 1000 ms · 内存限制 128 MB