萌新求助
查看原帖
萌新求助
231462
wdfamz楼主2020/10/1 12:23
#include<iostream>
using namespace std;
int n,a,b,k[201],l[201]={0},h=0;
int search(int x);
int main()
{
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++)
	{
		cin>>k[i];
	}
	search(a);
	return 0;
}
int search(int x)
{
	int head=1,tail=1,f[201];
	f[head]=x;
	l[f[head]]=1;
	while(head<=tail)
	{
		if(f[head]==b)
		{
			cout<<h<<endl;
			return 0;
		}
		if(f[head]+k[f[head]]>0&&f[head]+k[f[head]]<=n&&l[f[head]+k[f[head]]]==0)
		{
			tail++;
			f[tail]=f[head]+k[f[head]];
			l[f[tail]]=1;
		}
		if(f[head]-k[f[head]]>0&&f[head]-k[f[head]]<=n&&l[f[head]-k[f[head]]]==0)
		{
			tail++;
			f[tail]=f[head]-k[f[head]];
			l[f[tail]]=1;
		}
		head++;
		h++; 
	}
	cout<<-1<<endl;
	return 0; 
}

50分

2020/10/1 12:23
加载中...