思路:将三角形三条边进行排序,选择第二大的边作为其中一个圆的半径,这样会产生一个点圆,接着将最长的边剩余部分作为另一个圆的半径,即可得到三个圆面积最大。
#include <bits/stdc++.h>
using namespace std;
int T;
const double pi=acos(-1.0);
double sum;
int main()
{
scanf("%d",&T);
while(T--){
int line[4];
int mid;
scanf("%d %d %d",&line[1],&line[2],&line[3]);
sort(line+1,line+4);
sum=pow(line[2],2)*pi;
sum+=pow(line[3]-line[2],2)*pi;
printf("%.12lf\n",sum);
}
}