蒟蒻代码73pts求调
查看原帖
蒟蒻代码73pts求调
469470
EurekaStriker楼主2023/4/12 18:38
#include<bits/stdc++.h>
using namespace std;
int l[1145],n,tot,f[1145][1145];
double ans=-1;
double hailun(double x,double y,double z){
	double p=(x+y+z)/2;
	return sqrt(p*(p-x)*(p-y)*(p-z));
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>l[i],tot+=l[i];
	f[0][0]=1;
	for(int i=1;i<=n;i++)
		for(int j=tot/2;j>=0;j--)
			for(int k=tot/2;k>=0;k--)
			{
				if(j-l[i]>=0&&f[j-l[i]][k]==0)	f[j][k]=1;
				if(k-l[i]>=0&&f[j][k-l[i]]==0)	f[j][k]=1;
			}
	for(int i=tot/2;i>=1;i--)
		for(int j=tot/2;j>=1;j--)
		{
			if(f[i][j]==1&&(2*(i+j)>tot&&(tot-j)>j&&(tot-i)>i))
				ans=max(ans,hailun(i,j,tot-i-j));
		}
	if(ans==-1)
		cout<<"-1";
	else
		cout<<(long long)(ans*100);
	return 0;
}
2023/4/12 18:38
加载中...