LightOJ 1385 Kingdom Division(幾何学的導出)

1956 ワード

テーマリンク:http://www.lightoj.com/volume_showproblem.php?problem=1385
四部分に分かれた三角形をあげます.a、b、cを知っています.dが存在するかどうかを求めます.
構想:EFをリンクして、XEFをs 1として、AEFをx 2として、テーマによって2つの等式を求めることができます.s 1/A=C/B、(A+s 1+s 2)/(B+C)=s 2/(s 1+C)を簡略化すればいいです.
acコード:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#define PI acos(-1)
#define eps 1e-8
using namespace std;
int main()
{
    int t,cas=0;
    scanf("%d",&t);
    while(t--)
    {
        double A,B,C;
        scanf("%lf%lf%lf",&A,&B,&C);
        double b=C/B;
        double s1=b*A;
        if(B-s1<eps)
        {
            printf("Case %d: -1
"
,++cas); continue; } double s2=(A*s1+s1*s1+A*C+s1*C)/(B-s1); printf("Case %d: %.7lf
"
,++cas,s1+s2); } return 0; }