B. Little Artem and Grasshopper
来源:互联网 发布:sql循环执行存储过程 编辑:程序博客网 时间:2024/06/07 20:32
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.
题目比较简单,直接模拟这个过程就可以。
当遇到以前访问过的位置就说明会无限循环,跳不出来了。
#include <iostream>#include <cstdio>#include <cstring>using namespace std;int visit[100001];int a[100001];char str[100001];int main(){ int n,t,pos=0; visit[pos]=1; scanf("%d",&n); scanf("%s",str); for(int i=0;i<n;i++) scanf("%d",&a[i]); while(1){ if(str[pos]=='>'){ t=pos+a[pos]; if(t<0||t>=n){ printf("FINITE\n"); break; }else{ if(visit[t]==1){ printf("INFINITE\n"); break; }else{ pos=t; visit[pos]=1; } } }else{ t=pos-a[pos]; if(t<0||t>=n){ printf("FINITE\n"); break; }else{ if(visit[t]==1){ printf("INFINITE\n"); break; }else{ pos=t; visit[pos]=1; } } } } return 0;}
- B. Little Artem and Grasshopper
- CodeForces 669B Little Artem and Grasshopper
- codeforces 669B Little Artem and Grasshopper
- Little Artem and Grasshopper
- Codeforces 669B Little Artem and Grasshopper【思维+模拟】
- CF Round #348 Div. 2 A. Little Artem and Present B. Little Artem and Grasshopper C. Little Artem and
- CodeForces 669B Little Artem and Grasshopper(可怜的小蚂蚱,等待AC)
- CodeForces 641 A.Little Artem and Grasshopper(水~)
- Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition)-B. Little Artem and Grasshopper(模拟)
- CodeForces 668B Little Artem and Dance
- ACM刷题之Codeforces———— Little Artem and Grasshopper
- CodeForces 641 B.Little Artem and Matrix(水~)
- A. Little Artem and Presents
- CodeForces 669A Little Artem and Presents
- CodeForces 669D Little Artem and Dance
- CodeForces 669D Little Artem and Dance
- CodeForces 669A Little Artem and Presents
- 【CodeForces】669A - Little Artem and Presents
- Android ImageView长按保存图片及截屏相关知识
- Html5
- Ajax跨域问题的解决方法之一 —— "Access-Control-Allow-Origin"
- 翻译mos关于scnhealthcheck.sql( ID 1393363.1)
- Spark核心编程原理
- B. Little Artem and Grasshopper
- iOS js oc相互调用(JavaScriptCore)(二)
- 错排问题
- 接口返回的死数据
- 常见的分布式文件系统简介
- django migrate error: table 'xxx' already exists
- 浅谈Mongodb性能优化
- java--WebService小例子【MyEclipse10】
- Navigation寻路详解