#include<bits/stdc++.h>
using namespace std;
int l,n,r,dp[400],a[400],vis[400];
int dfs(int u)
{
if(dp[u]!=0) return dp[u];
if(u==r) return 0;
int ans=1e9;
if(u+a[u]<=n&&vis[u]==0) vis[u]=1,ans=min(1+dfs(u+a[u]),ans),vis[u]=0;
if(u-a[u]>=1&&vis[u]==0) vis[u]=1,ans=min(1+dfs(u-a[u]),ans),vis[u]=0;
return dp[u]=ans;
}
int main()
{
cin>>n>>l>>r;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) dp[i]=dfs(i);
if(dp[l]==1e9)
{
cout<<"-1";
return 0;
}
cout<<dp[l];
}
未超时,但wa了帮我康康。
~~我能剪都剪能 ~~