Ranking (as of 2015-01-31): 112 out of 451
Language: C++
/* UVa 11579 - Triangle Trouble To build using Visual Studio 2012: cl -EHsc -O2 UVa_11579_Triangle_Trouble.cpp */ #include <algorithm> #include <cstdio> #include <cmath> using namespace std; const int N_max = 10000; double sides[N_max]; int main() { int t; scanf("%d", &t); while (t--) { int N; scanf("%d", &N); for (int i = 0; i < N; i++) scanf("%lf", &sides[i]); sort(sides, sides + N); double largest = 0.0; for (int i = 0; i < N - 2; i++) { double a = sides[i], b = sides[i + 1], c = sides[i + 2]; if (a + b < c || b + c < a || c + a < b) continue; double s = (a + b + c) / 2.0, sa = s * (s - a) * (s - b) * (s - c); // Heron's formula largest = max(largest, sa); } printf("%.2lf\n", ((largest > 0.0) ? sqrt(largest) : largest)); } return 0; }
No comments:
Post a Comment