#include<bits/stdc++.h>
using namespace std;
int n,a,b,mp[201],mn=INT_MAX;
bool check(int x){
if(x>=a&&x<=b)return true;
return false;
}
void dfs(int s,int c){
if(sb){
mn=min(mn,c);
return;
}
for(int i=1;i<=mp[s];i++){
if(check(s+i)){
dfs(s+i,c+1);
}else break;
}
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++)cin>>mp[i];
dfs(a,0);
if(mnINT_MAX)cout<<-1;
else cout<<mn+1;
return 0;
}
结果一直不对,后来发现这是广搜的题,话说样例输出为什么是3啊?求解答