求求大佬救救我!!!
#include<bits/stdc++.h>
using namespace std;
const int maxn=30;
struct u{
int V[26],sum;
bool R[16];
}st;//V是该状态各种维生素已有量;R记录用了哪些食物
queue <u> Q;
int n,m,A[26],F[16][26];
void bfs(){
while(!Q.empty()){
u ft=Q.front(); Q.pop();
bool flg=0;
for(int i=1;i<=n;i++){
if(A[i]>ft.V[i]){
flg=1; break;
}
}
if(flg==0){
cout<<ft.sum<<" ";
for(int i=1;i<=m;i++){
if(ft.R[i]) cout<<i<<" ";
}
break;
}
for(int j=ft.sum+1;j<=m;j++){
u tp=ft;
if(!ft.R[j]){
for(int k=1;k<=n;k++){
tp.V[k]+=F[j][k];
}
tp.R[j]=1; tp.sum++;
Q.push(tp);
}
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>A[i];
cin>>m;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
scanf("%d",&F[i][j]);
Q.push(st);//st是一个空状态
bfs();
return 0;
}