意想不到的思路

wurenchao 2022-12-18 16:02:40 12 返回题目

#include<bits/stdc++.h>

using namespace std;

int N,A,B,ret=-1,s=0,a[201];

bool b[201];

void dfs(int t){

if(ret!=-1) return ;

if(t==B){ret=s; return ;}

if(t+a[t]<=N&&b[t+a[t]]==0) ++s,b[t]=1,dfs(t+a[t]),b[t]=0;

if(t-a[t]>0&&b[t-a[t]]==0) ++s,b[t]=1,dfs(t-a[t]),b[t]=0;

--s; return ;}

int main(){

cin>>N>>A>>B;

for(int i=1;i<=N;++i) cin>>a[i];

dfs(A);cout<<ret;

return 0;}
{{ vote && vote.total.up }}

共 1 条回复

wurenchao

《复制前回复一下吧~》