1 条题解

  • 1
    @ 2021-08-21 19:27:10
    #include<bits/stdc++.h>
    using namespace std;
    
    int n,s,t,a[201],cmp[201],val[201];
    int main(){
        cin>>n>>s>>t;
        int i;
        for(i=1; i<=n; i++){
            cin>>a[i];
            cmp[i]=0;
            val[i]=-1;
        }
        if(s==t){
         cout<<0;
         return 0;
        }
        int l,r,v,qu[1001];
        l=r=1;
        qu[1]=s;
        val[s]=0;
        cmp[s]=1;
        while(l<=r && r<=1000){
            v=qu[l++];
            if(v+a[v]<=n){ 
                if(cmp[v+a[v]]==0){
                    qu[++r]=v+a[v];
                    val[v+a[v]]=val[v]+1;
                    cmp[v+a[v]]=1;
                }
            } 
            if(v-a[v]>=1){ 
                if(cmp[v-a[v]]==0){
                    qu[++r]=v-a[v];
                    val[v-a[v]]=val[v]+1;
                    cmp[v-a[v]]=1;
                }
            } 
        }
        cout<<val[t];
        return 0;
    }
    
  • 1

信息

难度
9
分类
(无)
标签
递交数
9
已通过
3
通过率
33%
被复制
1
上传者