WA 了 2 个, Long Long没有用
#include <bits/stdc++.h>
using namespace std;
#define do double
#define ll long long
#define iv inline void
#define ii inline int
ii read();
const int N=1605;
int n,a[N],s;
ll c;
do ans;
bool f[N][N];
inline double p(int A,int B,int C) {
do P=(A+B+C)/2.0;
return sqrt(P*(P-A)*(P-B)*(P-C));
}
ii ch(int a,int b,int c) {return (a>b+c||b>a+c||c>a+b||a<b-c||
a<c-b||b<a-c||b<c-a||c<a-b||c<b-a);}
signed main() {
n=read();
for(int i=1;i<=n;++i) a[i]=read(),s+=a[i];
f[0][0]=1;
for(int i=1;i<=n;++i)
for(int j=s/2;j>=0;--j)
for(int k=s/2;k>=0;--k) {
if(j-a[i]>=0&&f[j-a[i]][k]) f[j][k]=1;
if(k-a[i]>=0&&f[j][k-a[i]]) f[j][k]=1;}
for(int i=s/2;i>0;--i)
for(int j=s/2;j>0;--j)
if(f[i][j]&&(!(ch(i,j,s-i-j))))
ans=max(ans,p(i,j,s-i-j));
printf("%lld",(ll)(ans*100));
return 0;
}
ii read() {
char ch=getchar();
int x=0,f=1;
while(ch<'0'||ch>'9') {if(ch=='-') f=-1;ch=getchar();}
while('0'<=ch&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
return x*f;
}