社区讨论

开了氧气就ac 不开就60分 大佬进来看一下

P1135奇怪的电梯参与者 4已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mi7ytebn
此快照首次捕获于
2025/11/21 05:50
4 个月前
此快照最后确认于
2025/11/21 05:50
4 个月前
查看原帖
真是奇怪
CPP
#include<bits/stdc++.h>
using namespace std;
int a[10010];
int b[10010];
int q[10010];
int ans[10010];
int n,x1,x2;
int main()
{
	ios::sync_with_stdio(false);
    cin.tie(0);
	cin>>n>>x1>>x2;
	if(x1==x2)
	{
		cout<<"0";
		return 0;
	}
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	int head=0,tail=1,x,y;
	b[x1]=true;
	q[1]=x1;
	do
	{
		head++;
		x=q[head]+a[q[head]];
		if(x<=n&&!b[x])
		{
			tail++;
			q[tail]=x;
			b[x]=false;
			ans[tail]=ans[head]+1;
		}
		if(x==x2)
		{ 
			cout<<ans[tail];
			return 0;
		}
		x=q[head]-a[q[head]];
		if(x>0&&!b[x])
		{
			tail++;
			q[tail]=x;
			b[x]=false;
			ans[tail]=ans[head]+1;
		}
		if(x==x2)
		{ 
			cout<<ans[tail];
			return 0;
		}
	}while(tail>head);
	cout<<"-1";
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...