U86339 Minecraft-跑酷节
题目背景
在minecraft中,跑酷可以算得上是一门技术了,Steve现在想在一个跑道上(二维)进行跑酷。但是Steve不知道能不能跑到终点,于是他便查询了跑酷冠军---Alex,来获得更多的知识。内容具体如下:
题目描述
生命值:
1.我们规定每个玩家的初始生命为10点。
2.掉落伤害的计算:
①如果玩家的高度为3格或以下,免除此伤害。
②如果玩家的高度为4格或以上,便会造成(x-3)/2点伤害,x为摔落的高度。
3.掉落伤害降低的情况:见特殊方块。
4.当生命值为0的时候,视为不能到达终点。
跑酷:
1.我们规定下落时只能向前移动一格方块。
2.对于站在一个方块上的玩家来说,玩家最多可以往前面跳3格并且可以 往上跳一个格子。
3.对于站在一个方块上的玩家来说,玩家最多也可以往前跳4格,但是不能向上跳一个格子。
4.Steve有2格高,不能进入2格以下的高度。
特殊方块:
1.粘液块:会使你跳跃至60%坠落距离的高度,如果有小数,我们向下取整。当你达到最高点的时候,只能往前再移动一格。当然,如果落在前方的方块上,同样要受到摔落伤害,如果掉了在粘液块上则不会受到伤害,这属于两个跳跃。你也可以按住shift键来免除反弹。在粘液块上面进行跑酷会受到1秒减数。
2.蜘蛛网:下落时会让你免除伤害。但会受到2秒减数。
3.水:下落时会让你免除伤害。但会受到1秒减数。
4.栅栏:这是Minecraft-跑酷节中最难跳跃的一个方块。它的高度是1.5格,所以平常的跳跃是过不去的。
5.在分块上跳跃不会受到减数效果。
时间:
1.在规定时间内没完成的视为不能到达终点。
2.每次跳跃、前进要花费0.5秒。
Steve找到了你,让你帮他去解决这个问题。判断Steve能不能到达终点。 如果能到达终点:输出最少的跳跃次数和最少的使用时间。 如果不能到达终点,请输出:kill。
输入格式
第一行为两个整数n,表示有n个方块和m秒数。
从第二行开始,下面连续n行,表示有n个方块。每个方块都有它的属性:a横坐标,b高度和c是否为特殊方块。(普通方块输入为P,粘液块为N,蜘蛛网为Z,水为S,栅栏为O)
输入的最前一个分块为初始点,最后一个为结束点。
输出格式
如果能到达终点:一个整数,表示最少的跳跃次数和最少的使用时间(中间用两个空格隔开)。
如果不能到达终点或路都被堵塞、没有办法前进时,请输出 kill
说明/提示
数据范围:
对于100%的数据 n