如题
#include<bits/stdc++.h>
using namespace std;
int n,a,b,n1[205]={0},ans=0,vis[205]={0};
struct r{
int x,y;
};
queue<r>q;
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>n1[i];
}
q.push({a,ans});
while(!q.empty()){
if(q.front().x==b){
cout<<q.front().y;
return 0;
}
else{
if(q.front().x+n1[q.front().x<=n&&vis[q.front().x]==0]){
q.push({q.front().x+n1[q.front().x],ans++});
q.pop();
vis[q.front().x]=1;
cout<<"a";
}
if(q.front().x-n1[q.front().x>=1&&vis[q.front().x]==0]){
q.push({q.front().x-n1[q.front().x],ans++});
q.pop();
vis[q.front().x]=1;
cout<<"b";
}
}
}
cout<<"-1";
return 0;
}