CF初体验---Round #348,B
来源:互联网 发布:网络象棋 编辑:程序博客网 时间:2024/05/17 12:05
B题:
B. Little Artem and Grasshopper
time limit per test2 seconds
memory limit per test256 megabytes
inputstandard input
outputstandard output
Little Artem found a grasshopper. He brought it to his house and constructed a jumping area for him.
The area looks like a strip of cells 1 × n. Each cell contains the direction for the next jump and the length of that jump. Grasshopper starts in the first cell and follows the instructions written on the cells. Grasshopper stops immediately if it jumps out of the strip. Now Artem wants to find out if this will ever happen.
Input
The first line of the input contains a single integer n (1 ≤ n ≤ 100 000) — length of the strip.
Next line contains a string of length n which consists of characters “<” and “>” only, that provide the direction of the jump from the corresponding cell. Next line contains n integers di (1 ≤ di ≤ 109) — the length of the jump from the i-th cell.
Output
Print “INFINITE” (without quotes) if grasshopper will continue his jumps forever. Otherwise print “FINITE” (without quotes).
Examples
input
2
<
1 2
output
FINITE
input
3<
2 1 1
output
INFINITE
Note
In the first sample grasshopper starts from the first cell and jumps to the right on the next cell. When he is in the second cell he needs to jump two cells left so he will jump out of the strip.
Second sample grasshopper path is 1 - 3 - 2 - 3 - 2 - 3 and so on. The path is infinite.
题意:
有一排格子,每个格子上有方向和数字。方向表示向哪个方向跳,数字表示跳几格。从第一格开始,求最终能不能跳出格子。
题解:我的思路是用string s存方向,数组step[]存步数,将使用过的step[i]=0,如果i<0||i>num-1,则说明跳出,如果遇到step[i]=0,则说明来过,于是就是不会跳出,无穷尽下去
提交错误原因:
没有注意出去的判断条件是i>num-1。。。。注意数组是从0到num-1(如果发现特殊点,自己可以编数据,测试一下)
#include<iostream>#include<string>using namespace std;int main(){int num;cin>>num;string s;cin>>s;int step[s.size()];for(int i=0;i<s.size();i++){cin>>step[i];}for(int i=0;;){ if(i<0||i>num-1){ cout<<"FINITE"<<endl;break; } if(step[i]==0){ cout<<"INFINITE"<<endl;break; } if(s[i]=='>'){//右移动 int temp; temp=i; i+=step[i]; step[temp]=0;continue; } if(s[i]=='<'){//左移动 int temp; temp=i; i-=step[i]; step[temp]=0;continue; }}}
- CF初体验---Round #348,B
- CF初体验---Round #348,C
- CF初体验--Round #348,D
- CF初体验——Round #348, A
- CF Educational Round 12, B
- CF 2 B. The least round way
- CF 2B The least round way
- CF round#302-2 B (13.10.17)
- CF round#211-2 B (13.11.11)
- CF round#212-2 B (13.11.14)
- CF Round#343(2)-B-暴力求解
- CF 2B The least round way
- CF Codeforces Round #258 (Div. 2) B (451B)
- CF 2B The least round way(DP)
- cf-Round #215 (Div. 1) -B - Sereja ans Anagrams
- CF - 387 - B. George and Round(指针)
- 【简单题】-CF-387B-George and Round
- cf Round #239 (Div. 1) B. Long Path
- 四.流程控制-学习笔记
- 手机安全卫士第二天
- Java 字符串分割“|”与“.”Bug(切记)
- SoapUI-入门
- 几个简单的排序算法
- CF初体验---Round #348,B
- [BZOJ1060][ZJOI2007]时态同步(树形dp)
- cocos2d-x屏幕适配
- Android项目的目录结构
- DataMining(2)_Mining Frequent Patterns
- 蛤玮准备礼物
- Spring学习笔记4-AOP
- 专题三 第一题
- PHP中获得mac地址