80分
查看原帖
80分
632830
Mark_666楼主2023/5/6 17:42
#include<bits/stdc++.h>
using namespace std;
int N,A,B;
int a[1000000];
int b[1000000];
bool pd;
void dfs(int i,int step)
{
	pd=false;
	b[i]=1;
	if(i==B)
	{
		cout<<step;
		exit(0);
	}
	int x=i+a[i];
	int y=i-a[i];
	if(x>0&&x<=N&&b[x]==0)
	{
		b[x]=1;
		dfs(x,step+1);
		pd=true;
	}
	if(y>0&&y<=N&&b[y]==0) 
	{
		b[y]=1;
		dfs(y,step+1);
		pd=true;
	} 
	if(!pd)
	{
		cout<<-1;
		exit(0);
	}
	
}
int main()
{
	cin>>N>>A>>B;
	for(int i=1;i<=N;i++)
		cin>>a[i];
	dfs(A,0);
	cout<<-1;
	return 0;
}
2023/5/6 17:42
加载中...