Monday, November 7, 2016

1433 - Minimum Arc Distance

Problem Linkhttp://lightoj.com/volume_showproblem.php?problem=1433

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 ox,oy,ax,ay,bx,by,r,s,angle,a;

    for(int ca=1; ca<=t; ca++)
    {
        scanf("%lf%lf%lf%lf%lf%lf",&ox,&oy,&ax,&ay,&bx,&by);

        r=sqrt(((ox-ax)*(ox-ax))+((oy-ay)*(oy-ay)));
        a=sqrt(((ax-bx)*(ax-bx))+((ay-by)*(ay-by)));

        angle=(2*(r*r)-(a*a))/(2*r*r);
        angle=cosinv(angle);
        angle=(angle*PI)/180;

        s=r*angle;

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

No comments:

Post a Comment