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