WA了四个
查看原帖
WA了四个
735797
XingnoYi楼主2022/7/24 18:55
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n,a,b,an[202],ans=0,ceng=0;
bool bn[202]={};
void dfs(int y,int dn,int ci)
{
	if(dn == y)
	{
		ans = ci;
		return;
	}
	else
	{
		bn[dn] = 1;
		if(dn+an[dn] <= y && bn[dn+an[dn]] == 0)
		{
			dfs(y,dn+an[dn],ci+1);
		}
		else if(dn-an[dn] >= 1 && bn[dn-an[dn]] == 0)
		{
		    dfs(y,dn-an[dn],ci+1);
		}
		bn[dn]=0;
	}
	
}
int main()
{
	scanf("%d%d%d",&n,&a,&b);
	for(int i = 1;i <= n;i++)
	{
		scanf("%d",an+i);
		if(i >= a && i <= b)
		{
			ceng += an[i];
		}
	}
	if(ceng < b-a)
	{
		printf("-1");
		return 0;
	}
	dfs(b,a,0);
	printf("%d",ans);
    return 0;
} 

#4 #7 #8 #9

2022/7/24 18:55
加载中...