为什么WA了一个?
查看原帖
为什么WA了一个?
1285021
Gan2024楼主2024/7/21 16:27

得了90分,代码如下:

#include<bits/stdc++.h>
using namespace std;

int ans[201],d[201]={0};

int n,a,b;

void dfs(int s,int t){
	ans[s]=t;
	if(s+d[s]<=n&&t+1<ans[s+d[s]]){
		dfs(s+d[s],t+1);
	}
	if(s-d[s]>0&&t+1<ans[s-d[s]]){
		dfs(s-d[s],t+1);
	}
}

int main(){
	for(int i=1;i<=200;i++){
		ans[i]=0x7f;
	}
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++){
		cin>>d[i];
	}
	dfs(a,0);
	if(ans[b]!=0x7f){
		cout<<ans[b];
	}	
	else{
		cout<<-1;
	}	
	return 0;
}
2024/7/21 16:27
加载中...