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