看到添加了数据,想试一下之前的代码有没有被hack掉。
交了两次一模一样的代码。
#include<bits/stdc++.h>
using namespace std;
int n,sf,ef,flor,step;
int a[205];
int d[2]={-1,1};
struct info{
int flor,step;
}q[10000];
int head,tail,book[205];
int main(){
cin>>n>>sf>>ef;
for(int i=1;i<=n;i++){
cin>>a[i];
book[sf]=1;
}q[tail].flor=sf,q[tail].step=0,tail++;
while(head<tail){
flor=q[head].flor,step=q[head].step;
if(flor==ef){
cout<<step;
return 0;
}for(int i=0;i<2;i++){
int tflor=q[head].flor+d[i]*a[flor],tstep=q[head].step+1;
if(tflor<1||tflor>n){
continue;
}if(book[tflor]==0){
q[tail].flor=tflor,q[tail].step=tstep;
tail++;
book[tflor]=1;
}
}head++;
}cout<<-1;
return 0;
}
第一次84分,UKE两个点,评测记录。
第二次就AC了,评测记录。
第一次遇到这种情况,求dalao解惑