捣鼓了半天,最后一个测试点WA,还有几个MLE,
下面上代码.
code:
#include <bits/stdc++.h>
using namespace std;
int n,a,b;
int to[160];
bool vis[160];
void dfs(int step,int _now)
{
if (vis[_now-1]==1)
{
cout<<-1<<endl;
exit(0);
}
if (_now<=0)
{
return;
}
if (_now>n)
{
return;
}
if (_now==b)
{
cout<<step-1<<endl;
exit(0);
}
dfs(step+1,_now+to[_now-1]);
vis[_now+to[_now-1]]=1;
dfs(step+1,_now-to[_now-1]);
vis[_now-to[_now-1]]=1;
}
int main()
{
cin>>n>>a>>b;
for (int i = 0; i < n; i++)
{
cin>>to[i];
}
dfs(1,a);
}