今天的Tirpitz
也闪☆亮的WA了一整天
因为心情有点糟糕所以整个人格外的闪☆亮
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<queue>
#include<vector>
#include<climits>
#include<string>
#include<cstdlib>
#include<ctime>
#define MOD 1000000007
#define LL long long
#define pi 3.141592653589
using namespace std;
int n,c,cnt,len[70],l,r,sum,mid,use[70],stick[70],tot,ans,vis[70];
bool comp(int a,int b)
{
return a>b;
}
bool dfs(int aim,int now,int nxt,int stick)
{
int i;
if(stick==tot)
{
ans=aim;
return true;
}
if(now==0)
{
if(dfs(aim,aim,1,stick+1)) return true;//emmm
}
for(i=nxt;i<=cnt;i++)
if((!vis[i])&&(len[i]<=now))
{
vis[i]=1;
if(dfs(aim,now-len[i],i+1,stick)) return true;
vis[i]=0;
if(now==len[i]||now==aim) break;//emmm
while(len[i]==len[i+1]) i++;
}
return false;
}
int main()
{
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&c);
if(c<=50)
{
cnt++;
len[cnt]=c;
l=max(l,len[cnt]);
r+=len[cnt];
}
}
sum=r;
sort(len+1,len+cnt+1,comp);
for(i=l;i<=r;i++)
if(sum%i==0)
{
tot=sum/i;
if(dfs(i,i,1,0)) break;
}
printf("%d",ans);
return 0;
}