#include<bits/stdc++.h>
using namespace std;
int N,A,B,ret=-1,s=0,a[201];
bool b[201];
void dfs(int t){
if(ret!=-1) return ;
if(t==B){ret=s; return ;}
if(t+a[t]<=N&&b[t+a[t]]==0) ++s,b[t]=1,dfs(t+a[t]),b[t]=0;
if(t-a[t]>0&&b[t-a[t]]==0) ++s,b[t]=1,dfs(t-a[t]),b[t]=0;
--s; return ;}
int main(){
cin>>N>>A>>B;
for(int i=1;i<=N;++i) cin>>a[i];
dfs(A);cout<<ret;
return 0;}
共 1 条回复
《复制前回复一下吧~》