在此处键入或粘贴代码#include<bits/stdc++.h>
using namespace std;
int V,bk[30],G,a[20][30];
int p=INT_MAX,sum[1000],ans[1000],cnt[1000];
set<int> s;
bool check(){
for(int i=0;i<V;i++){
if(sum[i]<bk[i]) return false;
}
return true;
}
void dfs(int x,int len){
if(len>=p){
return ;
}
if(x>G){
if(check()){
p=min(len,p);
for(int i=0;i<len;i++){
ans[i]=cnt[i];
}
}
return ;
}
cnt[len]=x;
for(int i=0;i<V;i++){
sum[i]+=a[x][i];
}
dfs(x+1,len+1);
for(int i=0;i<V;i++){
sum[i]-=a[x][i];
}
dfs(x+1,len);
}
int main(){
cin>>V;
for(int i=0;i<V;i++) cin>>bk[i];
cin>>G;
for(int i=1;i<=G;i++){
for(int j=0;j<V;j++){
cin>>a[i][j];
}
}
dfs(1,0);
cout<<p<<" ";
for(int i=0;i<p;i++){
cout<<ans[i]<<" ";
}
return 0;
}
能不能把题面放放