记录编号 16178 评测结果 AAAAAAAA
题目名称 王伯买鱼 最终得分 100
用户昵称 GravatarReimBurSe. 是否通过 通过
代码语言 C++ 运行时间 0.025 s
提交时间 2010-04-21 17:18:06 内存使用 0.26 MiB
显示代码纯文本
#include <iostream>
using namespace std;

int mo[31];
int ans,ansm,ansn,t,tn,th,m,n;
int s[31];

void print()
{
	printf("%d %d\n",ansn,ansm);
	int i=0;
	while (ans!=0)
	{
		i++;
		if (ans&1==1)
			printf("%d\n",i);
		ans=ans>>1;
	}
}

void abc(int k)
{
	int i,re=t;
	if (tn>ansn)
	{
		ans=t;
		ansm=th;
		ansn=tn;
	}
	if (tn==ansn&&th>ansm)
	{
		ans=t;
		ansm=th;
	}
	for (i=k;i<=n;i++)
	{
		if (n-i+1+tn<ansn) return;
		if ((s[i]&t)==0&&th+mo[i]<=m)
		{
			t=t|(1<<(i-1));
			tn++;
			th+=mo[i];
			abc(i+1);
			t=re;
			tn--;
			th-=mo[i];
		}
	}
}

void start()
{
	freopen("fish.in","r",stdin);
	freopen("fish.out","w",stdout);
	scanf("%d%d",&m,&n);
	int p,q,i;
	for (i=1;i<=n;i++)
	{
		scanf("%d%d",&p,&q);
		mo[p]=q;
	}
	for (;;)
	{
		scanf("%d%d",&p,&q);
		if (p==0&&q==0) break;
		s[p]=s[p]|(1<<(q-1));
		s[q]=s[q]|(1<<(p-1));
	}
}

int main()
{
	start();
	abc(1);
	print();
	return 0;
}