思路:
在第一个示例中,已访问的单元格是:1, 2, 4;因此,我们能够成功访问单元格 4。
在第二个示例中,可能访问的单元格是:1, 2, 4, 6, 7, 8;因此,我们无法访问想要前往的单元格 5。
代码:#include<stdio.h>
#include<iostream>
#include<algorithm>
int a[30001];
int b[30001];
using namespace std;
int main(){
int n,t,j=1;
cin>>n>>t;
int i;
for(i=1;i<=n-1;i++)
cin>>a[i];
for(i=1;;)
{
b[j++]=i+a[i];
i=i+a[i];
if(i>t)
break;
}
int flag=0;
for(i=1;i<j;i++)
{
if(b[i]==t)
{
flag=1;
break;
}
}
if(flag==1)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
return 0;
}