为何报错?
查看原帖
为何报错?
1095806
Supa7onyz楼主2024/4/3 07:22
#include <iostream>
using namespace std;
int ans=0xfffff,n,a,b,flr[200+1];
bool g={1};
void dfs(int high,int times){
    if (high==b){
        ans=min(ans,times);
        return;
    }
    if (g[high-1]==0){
        return;
    }
    g[high-1]=0;
    if (high+flr[high-1]<=b&&(high+flr[high-1]==b||g[high+flr[high-1]-1])){
        dfs(high+flr[high-1],times+1);
    }
    if (high-flr[high-1]>0&&(high-flr[high-1]==b||g[high-flr[high-1]-1])){
        dfs(high-flr[high-1],times+1);
    }
    return;
}
int main()
{
    cin>>n>>a>>b;
    for (int i=0;i<n;i++){
        cin>>flr[i];
    }
    dfs(a,0);
    if (ans==0xfffff){
        cout<<-1;
    }else{
        cout<<ans;
    }
    //200 162 78
    //40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 0 0 0 0 0 0 0 0 0 0 0 0 90 1 1 93 2 5 1 7 4 9 1 11 2 13 1 15 8 17 1 19 2 21 1 23 4 25 1 27 2 29 1 31 16 33 1 35 2 37 1 39 4 41 1 43 2 45 1 47 8 49 1 51 2 53 1 55 4 57 1 59 2 61 1 63 0 0 0 0 0 0 0 
    //82
    //200 68 200
    //68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66
    //-1
    return 0;
}
2024/4/3 07:22
加载中...