P2628 冒险岛

    • 152通过
    • 1.4K提交
  • 题目提供者 Yangyc20040711
  • 评测方式 云端评测
  • 标签 模拟
  • 难度 普及-
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 最新讨论 显示

    推荐的相关题目 显示

    题目背景

    冒险岛是费老师新开发的一种情景模拟电脑的游戏,通过掷骰子(1~6个数字之间),让一种人物(棋子)在棋纸上从左至右的行走,从而模拟冒险的故事……

    题目描述

    棋纸上有一条从左至右的很长的路,整条路是一连串符号组成,表明路的状况,棋子必须在符号组成的路上行走。每掷一下骰子得到的数字,棋子就可以走掷得的数字所对应的步数,比如掷3,就可以走3步。

    路上有两种特殊符号可以改变棋子的行走。

    一种是“>”符号,一旦棋子走完了掷骰子的步数,最终停留在这个符号上,后面有紧跟着2个以上“>”,那么棋子就可以获得前进奖励,可以沿着“>”一直一步步前进,直到遇到一个不是“>”的符号位置停下来。

    还有一种是“*”符号,一旦棋子走完了掷骰子的步数,最终停留在这个符号上,后面又紧跟着两个以上“*”,就要受到后退惩罚,需要退后k步,这个k步就是从当前“*”开始的连续的“*”的数量。

    每次掷数后,奖励或惩罚至多一次,如果奖励或惩罚后棋子又落在第二种特殊符号上,则不能再受到奖励或惩罚。

    如果走的棋子超出棋纸右边界最后一个符号,则停在最后一个符号上;如果超出左边界,则停在第一个符号上。

    若干次掷骰子后,请问游戏中的人物(棋子)走到了哪步?离终点还差几步?

    输入输出格式

    输入格式:

    第一行为一个字符串s,字符串中的每个字符表示棋纸的路的状况。

    第二行是一个n,表示掷了n次骰子。

    第三行是n个整数(1~6的范围),表明掷了n次骰子得到的数字,数字之间有一个空格。

    输出格式:

    只有两个数字,表明目前所在符号的序号和离终点符号的步数,数子中间有一个空格。注意输出末尾有换行。

    输入输出样例

    输入样例#1: 复制
    yhfA>>>fhsdfa***>>>foaoad
    3
    5 6 6
    输出样例#1: 复制
    20 5

    说明

    【样例说明】

    在游戏中,第一次掷的是5,则走到第一个>的位置,获得奖励前进至左起第二个f处。第二次掷的是6,则走到*的位置,受惩罚退3步,至d处。第三次掷的是6,则走至左起第四个>号处,获奖励前进至f。最终棋子停留的符号是第20个(从左至右的数),离终点符号d(含)相差5步数。

    【数据范围】

    对于50%的数据,1<=s的长度<=255,0<=n<=1000。

    对于100%的数据,256<=s的长度<=1000000,0<=n<=100000。

    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。