题目背景

冒险岛是费老师新开发的一种情景模拟电脑的游戏,通过掷骰子(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<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
string s;
int n,num,len,pos=-;
int main(){
getline(cin,s);
scanf("%d",&n);
len=s.length()-;
for(int i=;i<=n;i++){
scanf("%d",&num);
pos+=num;int tot=;
if(pos>=len) pos=len-;
if(s[pos]=='>'&&s[pos+]=='>'&&s[pos+]=='>')
while(s[pos]=='>') pos++;
else if(s[pos]=='*'&&s[pos+]=='*'&&s[pos+]=='*'){
while(s[pos+tot]=='*') tot++;
pos-=tot;
}
if(pos<) pos=;
if(pos>=len) pos=len-;
}
cout<<pos+<<" "<<len--pos;
}

洛谷 P2628 冒险岛的更多相关文章

  1. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  2. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  3. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  4. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  5. 洛谷P1710 地铁涨价

    P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交  讨论  题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...

  6. 洛谷P1371 NOI元丹

    P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交  讨论  题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...

  7. 洛谷P1538迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

  8. 洛谷八月月赛Round1凄惨记

    个人背景: 上午9:30放学,然后因为学校举办读书工程跟同学去书城选书,中午回来开始打比赛,下午又回老家,中间抽出一点时间调代码,回家已经8:50了 也许是7月月赛时“连蒙带骗”AK的太幸运然而因同学 ...

  9. 洛谷 P1379 八数码难题 Label:判重&&bfs

    特别声明:紫书上抄来的代码,详见P198 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给 ...

随机推荐

  1. BZOJ1306: [CQOI2009]match循环赛

    [传送门:BZOJ1306] 简要题意: 有n个队伍,每个队伍都要和其他队伍比一场,赢了的队得3分,输了的队不得分,打平两队各得一分,给出每个队伍的得分,求出对战方案数 题解: DFS暴搜!!一眼就觉 ...

  2. DECLARE CURSOR (Transact-SQL)

    Defines the attributes of a Transact-SQL server cursor, such as its scrolling behavior and the query ...

  3. html 笔记2

    .css重用 <style> 如果整个页面的宽度 > 900px时: { .c{ 共有 } .c1{ 独有 } } .c2{ 独有 } </style> <div ...

  4. OPENCV(2) —— Basic Structures(二)

    Mat OpenCV C++ n-dimensional dense array class The class Mat represents an n-dimensional dense numer ...

  5. Coderfroces 864 D. Make a Permutation!

    D. Make a Permutation! Ivan has an array consisting of n elements. Each of the elements is an intege ...

  6. 关于props default 数组/对象的默认值应当由一个工厂函数返回

    export default {props: { xAxisData: {   type: Array,   default: [] }, },这是我的代码 报错是Invalid default va ...

  7. 最新华为数通HCNP-随堂培训视频课程 大牛讲解高清带实验

    2017年最新华为数通HCNP-随堂培训视频课程 大牛讲解高清带实验 2017最新的华为中级HCNP培训,数通方向,讲解非常牛高清课程附带实验. 华为数通HCNP-2017年最新随堂培训视频(高清)\ ...

  8. 51nod 更难的矩阵取数问题 + 滚动数组优化

    这里要求要走到终点再走回来,可以转化为两个人走. 那么我们可以先粗暴的设f[x1][y1][x2][y2]为第一个人走到(x1, y1), 第二个人走到(x2, y2)的最大价值. 那么这样空间会很大 ...

  9. SQL事务+异常

    BEGIN TRAN BEGIN TRY --这里写代码 --这里写代码 END TRY BEGIN CATCH ROLLBACK TRAN END CATCH COMMIT TRAN

  10. 针对CDP协议攻击分析及安全防护

    针对CDP协议攻击分析及安全防护 熟悉Cisco的朋友都知道CDP协议是思科公司独特的发现协议,在思科公司出产的所有路由器和交换机里面都能运行此协议,一台运行C D P的路由器或交换机能够得知与它直接 ...