比赛 Asm.Def战记之圣地亚哥“杯2015 评测结果 AAAAAATTTT
题目名称 Asm.Def的枪榴弹 最终得分 60
用户昵称 Tychus 运行时间 4.351 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2015-10-31 11:33:21
显示代码纯文本
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <string>
#include <cmath>
#include <iomanip>
using namespace std;
struct room
{
	int a,b,c,d,e,w;
}x[20];
int n,k1,k2,k3,ans=0;
bool f[20];
void dfs()
{
	int sum1=k1,sum2=k2,sum3=k3;
	if (k1+k2+k3>ans) ans=k1+k2+k3;
	for (int i=1;i<=n;i++)
		if (!f[i]&&max(x[i].a-k1,0)+max(x[i].b-k2,0)<=k3)
		{
			f[i]=1;
			k3+=x[i].e-max(x[i].a-k1,0)-max(x[i].b-k2,0);
			k1=max(k1-x[i].a,0)+x[i].c;
			k2=max(k2-x[i].b,0)+x[i].d;
			dfs();
			f[i]=0;
			k1=sum1;
			k2=sum2;
			k3=sum3;
		}
}
int main()
{
	freopen("asm_grenade.in","r",stdin);
	freopen("asm_grenade.out","w",stdout);
	cin>>n;
	for (int i=1;i<=n;i++)
		scanf("%d",&x[i].a);
	for (int i=1;i<=n;i++)
		scanf("%d",&x[i].b);
	for (int i=1;i<=n;i++)
		scanf("%d",&x[i].c);
	for (int i=1;i<=n;i++)
		scanf("%d",&x[i].d);
	for (int i=1;i<=n;i++)
		scanf("%d",&x[i].e);
	cin>>k1>>k2>>k3;
	dfs();
	cout<<ans<<endl;
	fclose(stdin);
	fclose(stdout);
	return 0;
}