链接

思路:将三角形三条边进行排序,选择第二大的边作为其中一个圆的半径,这样会产生一个点圆,接着将最长的边剩余部分作为另一个圆的半径,即可得到三个圆面积最大。 alt

#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);
    }
}