社区讨论
5555555555555 Q^Q +1关
P1135奇怪的电梯参与者 3已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lo2htnr3
- 此快照首次捕获于
- 2023/10/23 14:04 2 年前
- 此快照最后确认于
- 2023/10/23 14:04 2 年前
C
#include <bits/stdc++.h>
using namespace std;
queue<int>q;
bool v[400002];
int o[8424624];
int step[400002];
int main(){
int m,n,k;
cin>>m>>n>>k;
q.push(n);
v[n]=1;
step[n]=1;
for(int i=1;i<=m;i++){
cin>>o[i];
}
if(n==k){
cout<<"0";
}
int l=1;
while(!q.empty()){
l++;
int h=q.front();
//cout<<h<<" "<<step[h]<<endl;
if(h==k) break;
q.pop();
if(v[h+o[l]]==0 && h+o[l]<=m){
q.push(h+o[l]);
v[h+o[l]]=1;
step[h+o[l]]=step[h]+1;
}
if(v[h-o[l]]=0 && h-o[l]>=0){
q.push(h-o[l]);
v[h-o[l]]=1;
step[h-o[l]]=step[h]+1;
}
}
//for(int i=1;i<=1000;i++){
// cout<<step[i]<<" ";
//}
if(step[k]==0){
cout<<"-1";
return 0;
}
cout<<step[k];
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...