社区讨论
求条ヾ(•ω•`)o
P1135奇怪的电梯参与者 3已保存回复 7
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 7 条
- 当前快照
- 1 份
- 快照标识符
- @mhz4aoov
- 此快照首次捕获于
- 2025/11/15 01:14 3 个月前
- 此快照最后确认于
- 2025/11/16 13:49 3 个月前
本蒟蒻的伪入代码,大佬们求条<(_ _)>
CPP#include<bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
const int maxn=200+10;
int n,a,b,k[maxn],ans=0x7f7f7f7f,sum;
inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0' || ch>'9'){
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0' && ch<='9'){
x=x*10+ch-'0';
ch=getchar();
}
return x*f;
}
void write(int x){
if(x<0){
putchar('-');
x=-x;
}
if(x>9) write(x/10);
putchar(x%10+'0');
return;
}
void writeh(int x){
write(x);
putchar('\n');
}
void writek(int x){
write(x);
putchar(' ');
}
void dfs(int pos,int step){
if(pos==b){
ans=min(ans,step);
return ;
}
if(step>ans) return ;
if(pos+k[pos]<=n) dfs(pos+k[pos],step+1);
if(pos+k[pos]>=1) dfs(pos-k[pos],step+1);
}
signed main(){
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
n=read();
a=read();
b=read();
for(int i=1;i<=n;i++){
k[i]=read();
sum+=k[i];
}
if(((sum+a)%2)!=(b%2)){
writeh(-1);
return 0;
}
dfs(a,0);
if(ans!=0x7f7f7f7f) writeh(ans);
else writeh(-1);
return 0;
}
回复
共 7 条回复,欢迎继续交流。
正在加载回复...