既然题目说了正方形可以任意摆放,举个很简单的例子,这个样例:
1
1 3 3 2
3
根据正弦定理求三角形面积最值的知识:当且仅当围成的三角形是等腰三角形时面积最大,因为都得减去一个定值面积(既半个正方形),因此鄙人认为根本不是题解所讲的正方形摆放一定得平行坐标轴,而是围成的大三角形必须是等腰三角形,代码如下:
#include<bits/stdc++.h>
using namespace std;
int n;
struct point{
double x,y;
}a,b;
double d[15];
int main()
{
while(cin>>n&&n)
{
double sum=0.0,ss=0.0;
cin>>a.x>>a.y>>b.x>>b.y;
for(int i=1;i<=n;i++)
{
cin>>d[i];
sum+=d[i];
ss+=d[i]*d[i]/2;
}
sum*=sqrt(2);
double t=fabs(atan(a.y/a.x)-atan(b.y/b.x))/2;
double s=sum/(2*tan(t));
printf("%.3lf\n",s*sum/2-ss);
}
return 0;
}```
运行上述样例的结果也比题解大0.03左右