codeforces 669B B. Little Artem and Grasshopper(水题)
2016-04-25 13:33
411 查看
题目链接:
B. Little Artem and Grasshopper
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard 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
output
input
output
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
题意:
给每个格子的跳动方向和跳动的距离,问从第一个格子开始跳,是永远在这些格子里还是会跳出去;
思路:
模拟跳动,跳出去了就输出跳出去了,没跳出去当跳到原来跳过的格子上就会永远跳不出去;
AC代码:
B. Little Artem and Grasshopper
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard 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
题意:
给每个格子的跳动方向和跳动的距离,问从第一个格子开始跳,是永远在这些格子里还是会跳出去;
思路:
模拟跳动,跳出去了就输出跳出去了,没跳出去当跳到原来跳过的格子上就会永远跳不出去;
AC代码:
#include <bits/stdc++.h> using namespace std; typedef long long ll; const ll mod=1e9+7; const ll inf=1e15; const int N=1e5+6; int n,a ,vis ; char s ; int main() { memset(vis,0,sizeof(vis)); scanf("%d",&n); scanf("%s",s+1); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } int pos=1; vis[1]=1; while(1) { if(s[pos]=='>') { if(pos+a[pos]>n) { printf("FINITE\n"); return 0; } else { if(vis[pos+a[pos]]) { printf("INFINITE\n"); return 0; } else { pos+=a[pos]; vis[pos]=1; } } } else { if(pos-a[pos]<1) { printf("FINITE\n"); return 0; } else { if(vis[pos-a[pos]]) { printf("INFINITE\n"); return 0; } else { pos-=a[pos]; vis[pos]=1; } } } } return 0; }
相关文章推荐
- linux下Bash编程循环语句特殊用法之编写脚本(十)
- 有关Ceph的一些使用经验
- 自动安装分布式mitaka版本openstack
- 容器虚拟化——docker 详解
- Linux 常用命令
- 网站DDOS攻击防护实战老男孩经验心得分享 【转】
- linux -- read(), write()
- Linux下安装MySQL 5.7
- docker一些命令
- MVC与三层架构区别
- Linux链接脚本学习--lds
- HoloLens开发手记 - HoloLens shell概述 HoloLens shell overview
- 集合、泛型、IO流、多线程、Junit 、内省 、Properties、 路径问题
- OpenCV
- bash: ifconfig: command not found
- 提升tomcat服务器性能的七条经验
- Linux内核栈与中断栈补充说明
- [mysql] linux 下mysql 5.7.12 安装
- Masonry和Cocopods
- org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot delete