30卡了
查看原帖
30卡了
1353713
RzRoyZheng楼主2025/7/28 19:38
#include<bits/stdc++.h>
using namespace std;
int n,a,b,sum,k[501],d=1;
void init()
{
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++)cin>>k[i];
	d=a;
}
void dfs()
{
	for(int i=d;;i++)
	{
		//cout<<d<<' '<<b<<' '<<sum;
		if(d==b)break;
		if(b>n)
		{
			sum=-1;
			break;
		}
		if(d-k[d]<1)
		{
			d+=k[d];
			//cout<<d<<' '<<k[d]<<endl;
			sum++;
		}
		else if(d+k[d]>n)
		{
			d-=k[d];
			//cout<<d<<' '<<k[d]<<endl;
			sum++;
		}
		else
		{
			sum=-1;
			break;
		}
	}
}

int main()
{
	init();
	dfs();
	cout<<sum;
}
2025/7/28 19:38
加载中...