| 比赛 | 近期练习题回顾 | 评测结果 | 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;
}