为啥我是80分?
查看原帖
为啥我是80分?
1169282
ljz_wall_leg_sao_gun楼主2023/10/26 13:10
#include<bits/stdc++.h> 
using namespace std;
bool vis[10000];
int n,A,B,ans=100000000;
int a[10000];
void dfs(int y,int cnt){
	if(y==B){
		ans=min(ans,cnt);
		return;
	}if(cnt>ans){
		return;
	}vis[y]=1;
	if(y+a[y]<=n){
		if(vis[y+a[y]]==0){
			dfs(y+a[y],cnt+1);
		}
	}if(y-a[y]>=1){
		if(vis[y-a[y]]==0){
			dfs(y-a[y],cnt+1);
		}
	}return;
}
int main(){
	cin>>n>>A>>B;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}dfs(A,0);
	if(ans==100000000){
		cout<<-1; 
	}else{
		cout<<ans;
	}
	return 0;
}

能不能帮我康一康

2023/10/26 13:10
加载中...