我的程序错哪了啊~~~(大声)
请看源代码
#include<bits/stdc++.h>
using namespace std;
int aa[2010];
bool visit[5000];
int n,a,b;
int aaaa,bbbb,cccc=0;
void bfs(int a,int b,int sum)
{
if(a==b)
{
cccc=1;
cout<<sum<<endl;
return ;
}
if(a+aa[a]<=n&&visit[a+aa[a]]==0)
{
aaaa=1;
visit[a+aa[a]]=1;
bfs(a+aa[a],b,sum+1);
}
if(a-aa[a]>0&&visit[a-aa[a]]==0)
{
bbbb=1;
visit[a-aa[a]]=1;
bfs(a-aa[a],b,sum+1);
}
if((visit[a+aa[a]]==0&&visit[a-aa[a]]==0)&&cccc!=1)
{
cout<<"-1"<<endl;
return;
}
return;
}
int main()
{
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
cin>>aa[i];
visit[a]=1;
bfs(a,b,0);
return 0;
}
结果请看这→分数