题目描述
有四根木棍,长度分别为 a b c d ,求着四根木棍组成四边形的最大面积。
输入
第一行包含一个整数 Ca ( Ca ≤ 10000 ) ,表示有 Ca 组测试数据,对于每组测试数据:
输入包含一行,该行包含四个整数 a b c d ( 1 ≤ a , b , c , d ≤ 1000 ) 。
输出
对于每组测试数据,输出 "Case c: ans" ,其中 c 表示测试数据编号, ans 表示最大的面积,小数点后保留六位,如果不能组成四边形,则 ans 处输出 -1 。
样例输入复制
3 1 2 4 8 2 3 4 5 6 3 2 5
样例输出复制
Case 1: -1 Case 2: 10.954451 Case 3: 13.416408
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
bool judge(int a[4], double s)
{
if (*max_element(a, a + 4) < s) return true;
return false;
}
int main()
{
int a[4];
int T;
cin >> T;
for (int i = 1; i <= T; i++)
{
for (int &j: a) cin >> j;
double s = (a[0] + a[1] + a[2] + a[3]) / 2.0;
if (!judge(a, s))
{
cout << "Case " << i << ": -1" << endl;
continue;
}
double ans = sqrt((s - a[0]) * (s - a[1]) * (s - a[2]) * (s - a[3]));
printf("Case %d: %.6f\n", i, ans);
}
return 0;
}