2000万优秀解决方案库,覆盖所有编程及软件开发类,极速查询
今日已更新 2500 篇代码解决方案
2024-09-11 11:25:44 249人阅读
5 1 5 3 3 1 2 5
3
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int a[1010]; 5 bool b[1010]; 6 void f(int ,int ); 7 int n,m,w,in=9999; 8 int main() 9 { 10 cin>>w>>n>>m; 11 for(int i=1;i<=w;++i) 12 scanf("%d",&a[i]); 13 f(n,0); 14 if(in==9999)cout<<"-1"; 15 else cout<<in; 16 return 0; 17 } 18 void f(int ow,int st) 19 { 20 if(st>in)return ; 21 if(ow==m) 22 { 23 if(st<in)in=st; 24 return ; 25 } 26 else { 27 if(ow==m){if(st<in)in=st;return ;} 28 b[ow]=true ; 29 if(ow + a[ow] <=w &&b[ow+a[ow]]==0) 30 f(ow + a[ow],st+1); 31 if(ow - a[ow] > 0 &&b[ow-a[ow]]==0) 32 f(ow - a[ow],st+1); 33 b[ow]=false; 34 } 35 }
奇怪的电梯
https://www.u72.net/daima/8b00.html
联系 我们
回到 顶部