Monday, November 7, 2016

1331 - Agent J

Problem Link : http://lightoj.com/volume_showproblem.php?problem=1331

Solution

#include<bits/stdc++.h>

#define PI acos(-1.0)

using namespace std;

double cosinv(double angle)
{
    return acos(angle)*(180/PI);
}

int main()
{
    int t;
    scanf("%d",&t);

    double r1,r2,r3,area,a1,a2,a3,t1,t2,t3;

    for(int ca=1; ca<=t; ca++)
    {
        scanf("%lf%lf%lf",&r1,&r2,&r3);

        t1=((r1+r2)*(r1+r2))+((r1+r3)*(r1+r3))-((r2+r3)*(r2+r3));
        t1=t1/(2*(r1+r2)*(r1+r3));
        t1=cosinv(t1);

        t2=((r1+r2)*(r1+r2))+((r2+r3)*(r2+r3))-((r1+r3)*(r1+r3));
        t2=t2/(2*((r1+r2))*(r2+r3));
        t2=cosinv(t2);

        t3=((r1+r3)*(r1+r3))+((r2+r3)*(r2+r3))-((r1+r2)*(r1+r2));
        t3=t3/(2*((r1+r3)*(r2+r3)));
        t3=cosinv(t3);

        a1=PI*(r1*r1)*(t1/360);
        a2=PI*(r2*r2)*(t2/360);
        a3=PI*(r3*r3)*(t3/360);

        area=.5*(r1+r2)*(r2+r3)*sin(t2*PI/180);
        area=area-a1-a2-a3;

        printf("Case %d: %f\n",ca,area);
    }

}

No comments:

Post a Comment