比赛 20140714上午练习 评测结果 AAAAAAAAAA
题目名称 荷斯坦奶牛 最终得分 100
用户昵称 努力吧 运行时间 0.021 s
代码语言 C++ 内存使用 0.28 MiB
提交时间 2014-07-14 11:19:23
显示代码纯文本
#include<fstream>
using namespace std;
ifstream fi("holstein.in");
ofstream fo("holstein.out");
int v,g;
int vl[27]={0},sl[17][27]={0};
int y=100;
bool ff[17]={0},yy[17]={0};
void dfs(int i,int u);
int main()
{
	fi>>v;
	for(int i=1;i<=v;i++)
		fi>>vl[i];
	fi>>g;
	for(int i=1;i<=g;i++)
		for(int j=1;j<=v;j++)
			fi>>sl[i][j];
	dfs(1,0);
	fo<<y;
	for(int i=1;i<=g;i++)
		if(yy[i]==1)
			fo<<" "<<i;
		fo<<endl;
	return 0;
}
void dfs(int i,int u)
{
	if(u>y)
		return;
	else
		if(i<=g)
		{
			dfs(i+1,u);
			ff[i]=1;
			dfs(i+1,u+1);
			ff[i]=0;
		}
		else
		{
			bool f=1;
			int s[27]={0};
			for(int j=1;j<=v;j++)
			{
				for(int k=1;k<=g;k++)
					if(ff[k]==1)
						s[j]+=sl[k][j];
				if(s[j]<vl[j])
				{
					f=0;
					break;
				}
			}
			if(f==1)
			{
				for(int j=1;j<=g;j++)
					yy[j]=ff[j];
				y=u;
			}
		}
}