c++;
80分,改不动了,呜呜
#include<bits/stdc++.h>
using namespace std;
long long n,a,b,k[210],i,c[210];
void lift(long long nol,long long cs)
{
c[nol]=min(c[nol],cs);
if(c[nol]<cs)
{
return;
}
if(nol-k[nol]>0)
{
lift(nol-k[nol],cs+1);
}
if(nol+k[nol]<=n)
{
lift(nol+k[nol],cs+1);
}
return;
}
int main()
{
cin>>n>>a>>b;
memset(c,999999,sizeof(c));
for(i=1;i<=n;i++)
{
cin>>k[i];
}
if(a==b)
{
cout<<0;
return 0;
}
if(!k[a])
{
cout<<-1;
return 0;
}
lift(a,0);
if(c[b]==999999)
{
cout<<-1;
return 0;
}
cout<<c[b];
return 0;
}