比赛 |
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;
}