原题

题目背景

冒险岛是费老师新开发的一种情景模拟电脑的游戏,通过掷骰子(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。

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
char s[1000010];
int add[1000010],a[1000010];
int main()
{int len,i,k,n;gets(s);len=strlen(s)-1;            //要减去换行符所占的长度 scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d",&a[i]);for(i=len-1;i>=0;i--){      //从后往前预处理奖励或惩罚的点 if(s[i]=='>'){if(s[i+1]!='>')add[i]=1;elseadd[i]=add[i+1]+1;}if(s[i]=='*'){if(s[i+1]!='*')add[i]=1;elseadd[i]=add[i+1]+1;}}a[1]--;         //由于所有测试数据的起点都为-1,所以第一步只能走啊a[1]-1步 k=0;for(i=1;i<=n;i++){k+=a[i];if(add[k]>=3){if(s[k]=='>')k+=add[k];elseif(s[k]=='*')k-=add[k];}if(k<0)                 //如果当前位置越出边界,则让它回到边界 k=0;if(k>len-1)k=len-1;}k++;//题目中的第一个字符的位置是一,输入的字符串的第一个字符的位置是零,故需再次加上一 printf("%d %d\n",k,len-k);return 0;
}

P2628 冒险岛 AC于2018.10.31相关推荐

  1. 训练日志 2018.10.31

    上周把图的连通性看完了,也做了些有关的题. 图的遍历内容的欧拉回路 Fleury 算法还不太熟练,哈密尔顿回路还没开始,这周争取把图的遍历以及拓扑排序看完,再做些题. 2018.10.31

  2. 10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第6天 2018/10.31

    10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第6天 2018/10.31 1. 第4次周计划概览 2. 今日学习成果 3. 今日时间表 4. 今日反思 5. ...

  3. 2018.10.31模拟赛

    T1 lgg L 君和 G 君在玩一个游戏.G 君写下一个字符串 A,L 君将其复制一遍连接到 A 串后面得 到字符串 B, G 君又在 B 的任意位置(包括首尾)插入一个字符得到字符串 C.现在你得 ...

  4. ssl提高组周三备考赛【2018.10.31】

    前言 呆学校呆3天依旧不想复习期中,感觉要凉. 成绩 RankRankRank PersonPersonPerson ScoreScoreScore AAA BBB CCC 111 2017mysel ...

  5. Noip 模拟 13 2018/10/31

    T1:铃仙的红色之瞳(eyes) 为了方便你的预测,铃仙对该符卡进行了改造. 敌方非常强大,可以看作有无限的体力.通过该符卡,铃仙可以释放出子弹,敌方触碰到子弹就会损失一格体力.注意,每次敌方损失体力 ...

  6. Contest - 2014 SWJTU ACM 手速测试赛(2014.10.31)

    题目列表: 2146 Problem A [手速]阔绰的Dim 2147 Problem B [手速]颓废的Dim 2148 Problem C [手速]我的滑板鞋 2149 Problem D [手 ...

  7. 【比赛报告】2018.10.15校赛[2015-9-13 NOIP模拟赛 by hzwer] NOIP练习赛卷十四

    比赛时间:2018.10.15 选手:lrllrl 用时:2h 得分:100+10+90=200 最初想法是一个背包问题.首先背包问题的模型肯定是不行的,但是我们可以列出状态转移方程后发现,每个状态决 ...

  8. 10.31纪中DAY3_公牛和母牛 气象牛 轻轨 设计

    noip2019-counting down three weeks 纪中day3 (头发日益稀少) 10.31纪中B组notes 公牛和母牛(USACO FEB09 Problem 'bullcow ...

  9. DayDayUp:广东卫视2018.12.31—2019财经跨年《遇见2018•预见2019》重点概览【文字+视频】

    DayDayUp:广东卫视2018.12.31-2019财经跨年<遇见2018•预见2019>重点概览[文字+视频] 警告:禁止一切形式的粘贴复制!如转载敬请留言告知!感谢尊重知识!尊重版 ...

最新文章

  1. uoj 117 欧拉回路
  2. 数据中心UPS电池故障引起火灾导致澳大利亚医院系统业务中断
  3. EF中加载实体的方式
  4. centos7编译安装php7.3
  5. [Python3] 015 冰冻集合的内置方法
  6. java给你的初步印象_Java之初印象
  7. 原来Java大数据才是真正的高富帅!
  8. 14.图像透视——人类视觉,平行线测验,其他模型,乐趣与角度_4
  9. Linux下PCI设备驱动程序开发[转]
  10. Android常用工具类 (转)
  11. 例4.4 最大公约数 - 九度教程第47题(最大公约数GCD)
  12. hibernate 3中要注意的地方
  13. other|2019最新PayPal二代支付接口Smart Payment Buttons开发
  14. 怎么用计算机弹植物大战僵尸,[原创] CE基础-自动汇编:植物大战僵尸之子弹回旋...
  15. 解决 :No active profile set, falling back to default profiles: default 问题
  16. 面试时被问有没有别家offer,回答没有,面试总是挂!回答有,就说我是面试选手,欺骗公司!...
  17. LiveGBS如何配置安防摄像头云端录像存储回放
  18. 科研,办公几款强大又实用的软件(含安装包)
  19. 教你如何把一张图片做成一段视频
  20. 简单做一段自己CSGO游戏的视频

热门文章

  1. Linux下运行越狱,linux如何运行python脚本ios越狱完有
  2. u-boot移植到mini2440,u-boot版本2008.10
  3. Jumpserver-堡垒机
  4. 基于JavaEE的网上银行系统的设计与实现
  5. 激励 名言 给奋斗在IT行业的人
  6. 怎样在Mac MicrosoftOffice2016 Excel中添加“开发工具”选项卡
  7. 前端刷新当前页面的方法总结
  8. 2020PS平面设计快捷键最新最全使用攻略
  9. 6个月20万用户,我是如何在一片唱衰声中打造出爆款应用的?
  10. 一件数据库学习有趣的事情