比赛 20140714上午练习 评测结果 AAAAAAAAAA
题目名称 荷斯坦奶牛 最终得分 100
用户昵称 KZNS 运行时间 0.015 s
代码语言 C++ 内存使用 0.32 MiB
提交时间 2014-07-14 11:19:25
显示代码纯文本
#include<fstream>
using namespace std;
int v,vl[27]={0},g,sl[17][27]={0};
bool ff[17]={0},edf[17]={0};
int edt=17;
void find(int d,int u);
int main()
{
	ifstream fi("holstein.in");
	ofstream fo("holstein.out");
	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];
	find(1,0);
	fo<<edt;
	for(int i=1;i<=g;i++)
		if(edf[i])
			fo<<' '<<i;
	fo<<endl;
	return 0;
}
void find(int d,int u)
{
	if(u>edt)
		return;
	if(d<=g)
	{
		find(d+1,u);
		ff[d]=1;
		find(d+1,u+1);
		ff[d]=0;
	}
	else
	{
		bool fff=1;
		int s[27]={0};
		for(int i=1;i<=v&&fff;i++)
		{
			for(int j=1;j<=g;j++)
				if(ff[j])
					s[i]+=sl[j][i];
			if(s[i]<vl[i])
				fff=0;
		}
		if(fff)
		{
			for(int i=1;i<=g;i++)
				edf[i]=ff[i];
			edt=u;
		}
	}
}