-
Notifications
You must be signed in to change notification settings - Fork 0
/
loj1178.cpp
49 lines (39 loc) · 927 Bytes
/
loj1178.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using namespace std;
#include<iostream>
#include<cstdio>
#include<cmath>
#include<ctype.h>
double finding_area(double a,double b,double c)
{
double s = (a+b+c)/2.0;
return sqrt(s*(s-a)*(s-b)*(s-c));
}
double finding_angle(double a,double b,double c)
{
return acos(((b*b)+(c*c)-(a*a))/(2.0*b*c));
}
double finding_Parellelogram_area(double angle,double b,double c)
{
return b*c*sin(angle);
}
int main()
{
double a,b,c,d;
int T,Case=1;
scanf("%d",&T);
while(T--)
{
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
if(c>a)
{
double temp=a;
a=c;
c=temp;
}
double triangle_area = finding_area(a-c,b,d);
double angle = finding_angle(d,a-c,b);
double Parellelogram_area = finding_Parellelogram_area(angle,b,c);
printf("Case %d: %.10lf\n",Case++,triangle_area+Parellelogram_area);
}
return 0;
}