提交时间:2025-10-13 20:15:56

运行 ID: 198662

#include<bits/stdc++.h> using namespace std; long long n,i,j,k,dp[2005][2005],a; double b,ma,c,d,sum,mi; int main(){ cin>>n,dp[0][0]=1; while(n--){ cin>>a,ma+=a; for(i=1600;i>=0;i--) for(j=1600;j>=0;j--){ if(i>=a)dp[i][j]=max(dp[i][j],dp[i-a][j]); if(j>=a)dp[i][j]=max(dp[i][j],dp[i][j-a]); } } for(i=ma;i>=0;i--) for(j=ma;j>=0;j--){ //cout<<i<<' '<<j<<' '<<dp[i][j]<<' '<<(double)sqrt((i+j+ma-i-j)/2.0*((i+j+ma-i-j)/2.0-i)*((i+j+ma-i-j)/2.0-j)*((i+j+ma-i-j)/2.0-(ma-i-j)))*100.0<<'\n'; if(dp[i][j]){ b=i,c=j,d=ma-b-c; if(d<=0||b<=0||c<=0)continue; if(b+c>d&&c+d>b&&d+b>c){ sum=(b+c+d)/2.0; sum=(double)sqrt(sum*(sum-b)*(sum-c)*(sum-d)); mi=max(mi,sum); //cout<<ma<<' '; //cout<<i<<' '<<j<<' '<<dp[i][j]<<' '<<(double)sqrt((i+j+ma-i-j)/2.0*((i+j+ma-i-j)/2.0-i)*((i+j+ma-i-j)/2.0-j)*((i+j+ma-i-j)/2.0-(ma-i-j)))*100.0<<'\n'; } } } if(mi==0)cout<<"-1"; else mi*=100.0,a=mi,cout<<a; return 0; }/* 5 1 1 3 3 4 */