求助70pts
查看原帖
求助70pts
539495
what_else楼主2022/4/13 10:08

#7,#8,#9Wa



#include<bits/stdc++.h>
using namespace std;
int s[101];
int book[101];
int n,a,b,ans=99999999;
void dfs(int l,int death){
    if(book[l])return;
    if(l==b)ans=min(ans,death);
    else{
        book[l]=1;
        if(l+s[l]<=n)dfs(l+s[l],death+1);
        if(l-s[l]>0)dfs(l-s[l],death+1);
        book[l]=0;
    }
    return;
}
int main(){
    cin>>n>>a>>b;
    for(int i=1;i<=n;i++)
    cin>>s[i];
    dfs(a,0);
    if(ans==99999999)cout<<"-1";
    else cout<<ans;
}

2022/4/13 10:08
加载中...