我以为他会TLE,然后我再来优化试试来着,可真没想到居然是MLE,whywhywhy?
#include<bits/stdc++.h>
using namespace std;
int n,a,b,k[203],vis[203];
int ans = 0x7fffffff;
void dfs(int now,int step)
{
if(now == b){ans = min(ans,step);return;}
if(now<1||now>n||vis[now]==1)return;
dfs(now+k[now],step+1);
dfs(now-k[now],step+1);
}
int main()
{
cin >> n >> a >> b;
for(int i = 1;i <= n;i++)
scanf("%d",&k[i]);
dfs(a,0);
if(ans==0x7fffffff)
cout << -1;
else cout << ans;
return 0;
}