添加回复
无
#include<iostream>
#include<string>
#include <vector>
#include <iomanip>
#include <cmath>
using namespace std;
double lineth(int x1,int y1,int x2,int y2)
{
double len;
len=sqrt(1.0*(x1-x2)*(x1-x2)+1.0*(y1-y2)*(y1-y2));
return len;
}
int main()
{
int num;
cin>>num;
while (num>0)
{
vector<int> X,Y;
X.resize(num);
Y.resize(num);
for (int i=0;i<num;i++)
{
cin>>X[i]>>Y[i];
}
double minarea=999999,maxarea=0;
double a,b,c,p;
for (int m=0;m<=num-3;m++)
{
for (int n=m+1;n<=num-2;n++)
{
for (int k=n+1;k<=num-1;k++)
{
a=lineth(X[m],Y[m],X[n],Y[n]);
b=lineth(X[m],Y[m],X[k],Y[k]);
c=lineth(X[k],Y[k],X[n],Y[n]);
if ((a+b)<=c||(b+c)<=a||(a+c)<=b)
{
continue;
}
p=(a+b+c)/2;
double nowarea=sqrt(p*(p-a)*(p-b)*(p-c));
if (nowarea<minarea)
{
minarea=nowarea;
}
else if (nowarea>maxarea)
{
maxarea=nowarea;
}
}
}
}
if (maxarea==0)
{
maxarea=minarea;
}
cout.fixed;
cout.precision(1);
cout<<minarea<<" ";
cout<<maxarea<<endl;
cin>>num;
}
return 0;
}
要求同一样例输出两个量之间用空格;不同样例输出之间用换行。
一致报输出超限,感觉日了狗了