C++这个代码怎么只能得80分 不知道错在哪里
查看原帖
C++这个代码怎么只能得80分 不知道错在哪里
829539
lkkkknb楼主2023/4/4 21:28
#include <bits/stdc++.h>
using namespace std;
int n,a,b;
int ans[205];
bool vis[205];
int sum=0x7ffffff,sum1=0;
void dfs(int f)
{
	if(f==b)
		sum=min(sum,sum1);
	if(sum1>sum)
		return;
		
			vis[f]=1;
			if(f+ans[f]<=n&&!vis[f+ans[f]])
				{
				sum1++;
				dfs(f+ans[f]);
				}
			if(f-ans[f]>=1&&!vis[f-ans[f]])
				{
				sum1++;
				dfs(f-ans[f]);
				}
			vis[f]=0;
}


int main()
{
	
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++)
		cin>>ans[i];
	//vis[a]=1;
	dfs(a);  
	if(sum!=0x7ffffff) 
	printf("%d",sum);
    else 
	printf("-1");
}
2023/4/4 21:28
加载中...