7th_E

本題思路,首先求出每兩點之間的距離,儲存在d中,然後窮舉所有情況,通過海倫公式計算三角形面積,找出最大的面積。

#include<cstdio>
#include<cmath>
int n;
int x[110];
int y[110];
double d[110][110];

double result=0;
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d%d",&x[i],&y[i]);
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
double temp=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
d[j][i]=temp;
d[i][j]=temp;
}
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
for(int k=j+1;k<n;k++){
double p = (d[i][j]+d[i][k]+d[j][k])/2;
double temp = sqrt(p*(p-d[i][j])*(p-d[i][k])*(p-d[j][k]));
if(temp>result){
result=temp;
}
}
}
}
printf("%.1lf\n",result);
return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章