二次修改的代码:
```cpp
#include<iostream>
using namespace std;
const int N=210;
int n,a,b;
int arr[N];
int res=1e9;
bool flag[N];
void dfs(int x,int cnt){
if(cnt>=res||x>n||x<0){
return ;
}
if(x==b){
res=min(res,cnt);
return ;
}
flag[x]=true;
if(x+arr[x]<=n&&!flag[x+arr[x]]){
flag[x+arr[x]]=true;
dfs(x+arr[x],cnt+1);
flag[x+arr[x]]=false;
}
if(x-arr[x]>0&&!flag[x-arr[x]]){
flag[x-arr[x]]=true;
dfs(x-arr[x],cnt+1);
flag[x-arr[x]]=false;
}
}
int main(){
scanf("%d %d %d",&n,&a,&b);
for(int i=1;i<=n;i++){
scanf("%d",&arr[i]);
}
dfs(a,0);
if(res==1e9){
printf("-1\n");
}else{
printf("%d\n",res);
}
return 0;
}
```
超时了
by BoubbleSort___ @ 2024-04-05 22:06:06