小蒟蒻求助,打的BFS,样例都错了QAQ
#include<bits/stdc++.h>
using namespace std;
int maxn;
struct SD
{
int now,step;
}q[351*351];
int n,m;
bool used[35100];
int a[351],b[351];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
maxn=max(maxn,a[i]);
}
maxn*=n;
for(int i=1;i<=m;i++) cin>>b[i];
int t=1,w=1;
q[t].now=a[1];
q[t].step=1;
used[a[1]]=1;
while(t<=w)
{
for(int i=1;i<=m;i++)
{
int nx=q[t].now+a[q[t].step];
if(nx>=1&&nx<=maxn&&!used[nx])
{
w++;
q[w].now=nx;
q[w].step=q[t].step+b[i];
used[nx]=1;
}
if(q[t].step>=n)
{
cout<<q[w].now;
return 0;
}
}
t++;
}
cout<<0;
return 0;
}