输出-1求调
查看原帖
输出-1求调
915921
DougNo1楼主2024/7/8 13:53

代码:

#include <bits/stdc++.h>
using namespace std;
struct point{
	int up,down,d;//up:向上能走到哪一层  down:向下能走到哪一层  d:现在按了几次按钮 
	bool bl;//此楼层是否有走过(0没走过  1走过) 
}c[210];
int main(){
	//输入  
    int n,a,b,num[210];
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++){
		cin>>num[i];
		c[i].up = i+num[i];
		c[i].down = i-num[i];
		c[i].d = -1;
		c[i].bl = 0;
	} 
	c[a].d=0; 
	c[a].bl=1;
	queue<point> q;
	q.push(c[a]);
	//BFS
	while(!q.empty()){
		point p = q.front();
		q.pop();
		
		int fl=p.up;
		if(fl>0 && fl<=n && p.bl==0){
			c[fl].bl = 1;
			c[fl].d = p.d+1;
			q.push(c[fl]);
		}
		if(fl==b) break;
		
		fl=p.down;
		if(fl>0 && fl<=n && p.bl==0){
			c[fl].bl = 1;
			c[fl].d = p.d+1;
			q.push(c[fl]);
		}
		if(fl==b) break;
	}
	//输出 
	cout<<c[b].d;
	return 0;
}

结果不管输入什么,输出都是-1

请大佬们帮忙调一下!

2024/7/8 13:53
加载中...