我是怎么WA了6次的?
我们可以设三个圆的半径分别为X、Y、Z,原三角形的三边分别记为a、b、c,据两圆外切的性质(圆心距等于半径和):
x+y=a;y+z=b;z+x=c
解这个方程组就可求出三个圆的半径。(已知三角形三边的条件下)
x=(a+b-c)/2,y=(a+c-b)/2;z=(b+c-a)/2;
也就是说:只要是个三角形,都可以的,不存在“No"的输出

#include<bits/stdc++.h>
using namespace std;
long long int a,b,c;
double x,y,z;
int main(){
    scanf("%lld%lld%lld",&a,&b,&c);
    if((a+b)<=c || (a+c)<=b || (b+c)<=a)
           printf("wtnl");
    else{
        x=(a+b-c)/2.0;
        y=(a+c-b)/2.0;
        z=(b+c-a)/2.0;//错解:/2(精度缺失)

        if(x>y) 
            swap(x,y);
        if(x>z)
            swap(x,z);
        if(y>z)
            swap(y,z);

        printf("Yes\n");//错解:YES
        printf("%.2lf %.2lf %.2lf",x,y,z);//错解:没有空格
    }
    return 0;
}