11579:Triangle Trouble
問題文
http://uva.onlinejudge.org/external/115/11579.html
辺の長さがいくつか与えられるので
作ることができる三角形の最大の面積を求めなさい。
ソートして連続する三つの辺を使った三角形が候補になる。
それを全部試して面積を求めた。
面積求めるのはヘロンの公式を使った。
#include<iostream> #include<algorithm> #include<vector> #include<cmath> #include<cstdio> using namespace std; int main(void){ int t,n; cin >> t; while(t--){ cin >> n; vector<double>v(n); for(int i=0;i<n;i++)cin >> v[i]; sort(v.begin(),v.end()); double ans=0.00; for(int i=0;i<v.size()-2;i++){ double a=v[i],b=v[i+1],c=v[i+2]; double s=(a+b+c)/2,S=sqrt(s*(s-a)*(s-b)*(s-c)); ans=max(ans,S); } printf("%.2f\n",ans); } return 0; }