比赛 近期练习题回顾 评测结果 AAAAAAAAAA
题目名称 逃离农场 最终得分 100
用户昵称 whymhe 运行时间 0.702 s
代码语言 C++ 内存使用 13.66 MiB
提交时间 2018-10-20 16:10:52
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
using namespace std;

typedef long long LL;

inline int read()
{
	char c=getchar();int num=0,f=1;
	for(;!isdigit(c);c=getchar())
		f=c=='-'?-1:f;
	for(;isdigit(c);c=getchar())
		num=num*10+c-'0';
	return num*f;
}

int n;
int a[25],b[25],cnt;
int bit[15];

inline bool check()
{
	for(int i=1;i<=10;++i)
	{
		bit[i]=0;
		for(int j=1;j<=cnt;++j)
		{
			bit[i]+=b[j]%10;
			b[j]/=10;
			if(bit[i]>=10)
				return 0;
		}
	}
	return 1;
}

int main()
{
	freopen("cowescape.in","r",stdin);
	freopen("cowescape.out","w",stdout);
	n=read();
	for(int i=1;i<=n;++i)
		a[i]=read();
	const int lim=1<<n;
	int ans=0;
	for(int i=1;i<lim;++i)
	{
		cnt=0;
		for(int j=1,c=1;j<=i;j<<=1,++c)
			if(i&j)
				b[++cnt]=a[c];
		if(cnt<=ans)
			continue;
		if(check())
			ans=cnt;
	}
	cout<<ans;
	return 0;
}