#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
struct Node
{
int ans[26];
} a[26],b;
int c[26],d[26];
int V,v[26],G,L,minl=100;
void dfs(int x,int l)
{
if(l>=minl)
{
return;
}
bool flag=true;
for(int i=1;i<=V;i++)
{
if(b.ans[i]<v[i])
{
flag=false;
break;
}
}
if(flag)
{
minl=l;
for(int i=1;i<=minl;i++)
{
d[i]=c[i];
}
}
for(int i=x+1;i<=G;i++)
{
for(int j=1;j<=V;j++)
{
b.ans[j]+=a[i].ans[j];
}
l++;
c[l]=i;
dfs(i,l);
l--;
for(int j=1;j<=V;j++)
{
b.ans[j]-=a[i].ans[j];
}
}
}
int main ()
{
cin>>V;
for(int i=1;i<=V;++i)
{
cin>>v[i];
}
cin>>G;
for(int i=1;i<=G;++i)
{
for(int j=1;j<=V;j++)
{
cin>>a[i].ans[j];
}
}
for(int i=1;i<=G;i++)
{
memset(b.ans,0,sizeof(b.ans));
for(int j=1;j<=V;j++)
{
b.ans[j]=a[i].ans[j];
}
L=1;
c[1]=i;
dfs(i,L);
}
cout<<minl<<" ";
for(int i=1;i<=minl;i++)
{
cout<<d[i]<<" ";
}
cout<<endl;
return 0;
}
P1460 健康的荷斯坦奶牛 Healthy Holsteins
最新推荐文章于 2023-05-04 18:36:08 发布