比赛 Asm.Def战记之圣地亚哥“杯2015 评测结果 AWWWWWTTTT
题目名称 Asm.Def的枪榴弹 最终得分 10
用户昵称 slyterlins 运行时间 4.570 s
代码语言 C++ 内存使用 0.28 MiB
提交时间 2015-10-31 11:37:55
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#define IN 10000
#define FOR(a) for(int i=1;i<=a;i++)
using namespace std;
int n,a[20],b[20],p1[20],p2[20],p3[20];
int aa,ab,ac,ans,che;
bool vis[20];
inline int dfs(int la,int lb,int lc)
{
//	cout<<la<<lb<<lc<<endl;
	int k=0;
	FOR(n)if(lc-(a[i]-la)>=0&&lc-(b[i]-lb)>=0&!vis[i])
	k=1;
	if(k==0)return la+lb+lc;
	FOR(n)if(lc-(a[i]-la)>=0&&lc-(b[i]-lb)>=0&!vis[i])
	{   int q,qq,qqq;
	    vis[i]=1;
	    q=la;qq=lb;qqq=lc;
//		cout<<i<<' '<<p1[i]<<' '<<p2[i]<<' '<<p3[i]<<' ';
	    if(la>=a[i])la-=a[i];else{lc-=(a[i]-la);la=0;}
	    if(lb>=b[i])lb-=b[i];else{lc-=(b[i]-lb);lb=0;}
	    la+=p1[i];lb+=p2[i];lc+=p3[i];
//	    cout<<la<<' '<<lb<<' '<<lc<<' ';
        che=dfs(la,lb,lc);
		ans=max(la+lb+la,che);
//		cout<<ans<<endl;
		vis[i]=0;
		la=q;lb=qq;lc=qqq;;
	}
	
	return ans;
}

int main()
{
	freopen("asm_grenade.in","r",stdin); 
    freopen("asm_grenade.out","w",stdout);
	int maxx;
	cin>>n;
	FOR(n)cin>>a[i];
	FOR(n)cin>>b[i];
	FOR(n)cin>>p1[i];
	FOR(n)cin>>p2[i];
	FOR(n)cin>>p3[i];
	cin>>aa>>ab>>ac;
    maxx=dfs(aa,ab,ac);
	cout<<maxx;
	return 0;  
}