首先我说明一下我知道我没写输出-1但你别告诉我8个测试点都是-1
只对俩测试点,到底错在哪儿了?
#include <iostream>
#include <queue>
namepace std;
int main()
{
queue<int> que;
int n, a, b;
int k[201];
bool vis[201]={0};
cin >> n >> a >> b;
for(int i=1;i<=n;i++) cin>>k[i];
int now=a;
int ans=0;
que.push(now);
while(!que.empty()){
now = que.front();
que.pop();
if(now==b) break;
ans++;
if(now-k[now]>0&&!vis[now-k[now]]) {
que.push(now-k[now]);
vis[now-k[now]] = 1;
}
if(now+k[now]<=n&&!vis[now+k[now]]) {
que.push(now+k[now]);
vis[now+k[now]] = 1;
}
}
cout << ans;
return 0;
}
好了这就是代码