前五个点WA了,好像是因为没有输出,具体我也不知道哪里错了;
#include<bits/stdc++.h>
using namespace std;
int n,a,b,k;
const int N=205;
int dp[N][N];
int main()
{
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
dp[i][j]=0x3f3f3f3f;
}
}
for(int i=1;i<=n;i++)
{
cin>>k;
dp[i][i+k]=1;
if(i-k>=1)
{
dp[i][i-k]=1;
}
}
for(int k=1;k<=n;k++)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(i!=j)
{
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);
}
}
}
}
if(a==b)
cout<<"0"<<endl;
else
{
if(dp[a][b]<0x3f3f3f3f)
cout<<dp[a][b]<<endl;
else
cout<<"-1"<<endl;
}
return 0;
}