Help,为啥我只有20分aaa
查看原帖
Help,为啥我只有20分aaa
579727
Plum_Steven楼主2022/9/20 22:09

首先我说明一下我知道我没写输出-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;
}

好了这就是代码

2022/9/20 22:09
加载中...