52分,其他WA,求助
查看原帖
52分,其他WA,求助
1219707
CB_X2_Jun楼主2024/5/4 11:15
#include <iostream>
using namespace std;
int n,a,b;
struct lift
{
    int i,step;
}k[201];
int map[201];
int x,nx,s;
void bfs()
{
    map[x]=1;
    for(int i=1; i<=2; i++)
	{
		if(i==1)
		{
			nx=x+k[x].i;
		}
		else if(i==2)
		{
			nx=x-k[x].i;
		}
		if(nx>=1&&nx<=n&&map[nx]==0)
		{
			k[nx].step=k[x].step+1;
			if(nx==b)
			{
				cout << k[nx].step;
				s=1;
				return;
			}
			x=nx;
			bfs();
		}
	}
}
int main()
{
    cin >> n >> a >> b;
    for(int i=1; i<=n; i++)
    {
        cin >> k[i].i;
    }
    x=a;
    k[a].step=0;
    bfs();
    if(!s)cout << -1;
    return 0;
}

样例 1 2 3 4 5 7 14 15_WA_ 了

2024/5/4 11:15
加载中...