P9949
Recall_cpp · · 题解
思路
首先,肯定可以
要知道,如果与
三角形的一条边长为
要想要面积最大,可以让三角形的两条边分别最大,时间复杂度降了一维。
代码
#include<bits/stdc++.h>
using namespace std;
int x[105],y[105],n,maxx=0,xmax[105],ymax[105];
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>x[i]>>y[i];
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==j) continue;
if(x[i]==x[j]) xmax[i]=max(xmax[i],abs(y[i]-y[j]));//一条最大
if(y[i]==y[j]) ymax[i]=max(ymax[i],abs(x[i]-x[j]));//另一条
}
}
int maxx=0;
for(int i=1;i<=n;i++) maxx=max(maxx,xmax[i]*ymax[i]);//求最大值
cout<<maxx;
return 0;
}