C++,codeforces,500A,A. New Year Transportation

/*
codeforces,500A,A. New Year Transportation
有n个房间,标号1---n
有n-1个传送门, 标号1---(n-1),用a_i表示第i个传送门
第i个传送门可以让人从房间i传送到房间i+a_i, 1<=a_i<=n-i
通过传送门最远能前进(n-i)个房间,也就是最远能到达房间n
并且无论从哪个房间开始,一直移动,最终一定能到达房间n
问能否从房间1传送到房间t
输入:
n t
a_1 a_2 ... a_{n-1}
*/
#include <iostream>
int main(){
int n,t;std::cin>>n>>t;
if(t==1||t==n){
//若目的房间是1,则初始就已到达
//若目的房间是n,则最终一定能到达
std::cout<<"YES"<<std::endl;
return 0;
}
//从房间1开始,记录每次移动到的房间
int currI = 1;
for(int i = 1;i<n;++i){
if(currI==t){
//若上次移动后到达的房间是目的房间
std::cout<<"YES"<<std::endl;
return 0;
}else if(currI>t){
//若上次移动后到达的房间已经超过目的房间
std::cout<<"NO"<<std::endl;
return 0;
}else{
//若上次移动后到达的房间还未到达目的房间
int a;std::cin>>a;
if(currI==i){
//若本次获取的传送门的入口是当前移动到的房间
//则进行移动
currI+=a;
}
}
}
//下面的代码应不会被执行
if(currI==t){
//此时currI和t的值应是n
std::cout<<"YES"<<std::endl;
}else{
std::cout<<"NO"<<std::endl;
}
return 0;
}
posted @   Kazuma_124  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示