对边排个序,由小到大开始三个三个遍历,求到面积最大的一个
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+5;
ll s[maxn];
int n,m;
int main()
{
ios::sync_with_stdio(false);cin.tie(0);
while(cin>>n)
{
for(int i=0; i<n; i++)
cin>>s[i];
sort(s,s+n);
double maxs=-1;
ll x,y,z;
ll a,b,c;
for(int i=0;i<n-2;i++)
{
a=s[i],b=s[i+1],c=s[i+2];
double p=(double )(a+b+c)/2;
double k=sqrt(p*(p-a)*(p-b)*(p-c));
if(k>maxs)
{
maxs=k;
x=a;y=b;z=c;
}
}
cout<<"("<<x<<", "<<y<<", "<<z<<")"<<endl;
}
return 0;
}