为什么只能过七个点啊!
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define fr first
#define se second
#define FAST ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
using namespace std;
int n,a,b,ans=INT_MAX;
int arr[205];
bool mark[205];
void dfs(int sum,int now){
if(now==b) ans=min(ans,sum);
if(sum>ans) return;
mark[now]=1;
int x=now+arr[now],y=y-arr[now];
if(x<=n&&mark[x]==0) dfs(sum+1,x);
if(y>=1&&mark[y]==0) dfs(sum+1,y);
mark[now]=0;
}
int main(){
FAST;
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>arr[i];
}
mark[a]=1;
dfs(0,a);
if(ans==INT_MAX) cout<<"-1";
else cout<<ans;
return 0;
}