我的代码为什么会这样呢?把q队列放入main 30pts,现在18pts
RE on #1,#2,#3,#4,#5,#6,#14,#15
MLE on #8,#12,#13,#16
TLE on #10
#include<bits/stdc++.h>
using namespace std;
int n,a[205],went[205],st,ed;
struct pos{
int now,step;
}k,k1;
queue<pos> q;
int main(){
cin>>n>>st>>ed;
for(int i=1;i<=n;i++) cin>>a[i];
k.now=st;
k.step=0;
q.push(k);
while(!q.empty()){
went[q.front().now]=1;
if(q.front().now==ed){
cout<<q.front().step;
return 0;
}
k.now=q.front().now+a[q.front().now];k.step=q.front().step+1;
k1.now=q.front().now-a[q.front().now];k1.step=q.front().step+1;
if(!went[k.now]||k.now<=n) q.push(k);
if(!went[k1.now]||k1.now>0) q.push(k1);
q.pop();
}
cout<<-1;
return 0;
}