题单练习 挑战赛 普及/提高- 题

A3086 | 神庙大冒险

来源官方 / 2024
时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

时间限制:1000ms

空间限制:128mb


Yuilice掉入了一个奇怪的神庙,在这个神庙当中充斥着各种各样的怪物,Yuilice原本还挺怕的,但是看下时间马上要到四点给B班上课了,因此他一下子精神了,准备火速回到柯桥上课。

我们可以把神庙看成是一个$N \times N$的二维矩阵,Yuilice一开始存在着$T$点体力值,他只能进行向右或者向下的移动,并且从行为$S_x$,列为$S_y$的起点出发。在这个矩阵当中,存在着以下几种情况

  • 字符.代表道路,Yuilice每走一格道路就会损失1点体力值。
  • 字符M代表怪物,Yuilice因为迫切的想要回到B班上课,因此他可以使用$k$点体力消灭该格的怪物来到该格当中。(假如起点就有怪物,那么怪物就会被Yuilice降落的余波消灭,不需要消耗体力值)
  • 字符D代表神奇果实,Yuilice可以来到该格吃下果实,补充$z$点体力,并且每格的果实只能被食用一次
现在已知终点所处坐标为$[N,N]$请你计算出Yuilice回到B班时,他最多还有多少体力值来给B班的同学上课呢?

输入格式

第一行包括六个整数$n,T,k,z,S_x,S_y$,分别代表地图的大小、初始体力值、消灭怪物的体力值、补充体力值、与起点横坐标与纵坐标。

随后$n$行,每行输入$n$个字符,代表神庙的地图。

输出格式

输出一个整数代表Yuilice到达B班的最多体力值。

输入输出样例

输入 #1
3 3 1 100 1 1
..M
..M
DM.
输出 #1
100
输入 #2
3 3 1 100 1 1
DDD
DDD
DDD
输出 #2
503
输入 #3
3 3 1 100 1 1
MMM
MMM
MMM
输出 #3
-1
C++ 编辑器
输入
输出