原题,-1输出不了
#include <bits/stdc++.h>
using namespace std;
int n,a,b,k[205],vis[205];
queue <int> q;
int main()
{
cin >> n >> a >> b;
if (a == b)
{
cout << 0;
return 0;
}
for (int i = 1;i <= n;i++) cin >> k[i];
q.push(a);
vis[a] = 0;
memset(vis,2e9,sizeof(vis));
while (!q.empty())
{
int x = q.front();
q.pop();
if (x + k[x] <= n)
{
if (!vis[x + k[x]])
{
q.push(x + k[x]);
vis[x + k[x]] = vis[x] + 1;
}
}
if (x - k[x] > 0)
{
if (!vis[x - k[x]])
{
q.push(x - k[x]);
vis[x - k[x]] = vis[x] + 1;
}
}
}
cout << (vis[b] == 2e9?-1:vis[b]);
return 0;
}