一直八十分,求助
查看原帖
一直八十分,求助
335868
Friendj楼主2020/10/6 15:29
#include <bits/stdc++.h>
using namespace std;
int n,a,b,i,j;
int k[201];
bool flag = false;
void  dfs(int i,int a,int c){
	if(a>n||a<1){
		flag = true;
		return;
	}
	if(a==b){
		cout<<c;
		return;
	}
	if(k[i]==0){
		return;
	}
	if(a>b){
		dfs(a-k[i],a-k[i],c+1);
	}else{
		flag=false;
		dfs(a+k[i],a+k[i],c+1);
	}
}
int main(){
	cin>>n>>a>>b;
	for(i = 1;i<=n;i++){
		cin>>k[i];
	}
	dfs(a,a,0);
	if(flag){
		cout<<"-1";
	}
	return 0;
}
2020/10/6 15:29
加载中...