输出0不理解qwq
#include<bits/stdc++.h>
#define db double
using namespace std;
db l,r;
struct point { db x,y; } A,B,C;
db _getlength(point p1,point p2){
return sqrt( (p1.x-p2.x)*(p1.x-p2.x)+
(p1.y-p2.y)*(p1.y-p2.y) );
}
point _getpoint_p(db p,point p1,point p2){
point _p;
db dx=abs(p1.x-p2.x);
db dy=abs(p1.y-p2.y);
_p.x=min(p1.x,p2.x)+dx;
_p.y=max(p1.y,p2.y)-dy;
return _p;
}
db _getS(db a,db b,db c){
return sqrt((a+b+c)/2*((a+b+c)/2-a)*((a+b+c)/2-b)*((a+b+c)/2-c));
}
int main(){
cin>>l>>r;
cin>>A.x>>A.y>>B.x>>B.y>>C.x>>C.y;
point D,E,F;
if(l<=0.5&&0.5<=r){
D=_getpoint_p(0.5,A,B);
E=_getpoint_p(0.5,B,C);
F=_getpoint_p(0.5,A,C);
}
else if(r<0.5){
D=_getpoint_p(r,A,B);
E=_getpoint_p(r,B,C);
F=_getpoint_p(r,A,C);
}
else {
D=_getpoint_p(l,A,B);
E=_getpoint_p(l,B,C);
F=_getpoint_p(l,A,C);
}
db a,b,c;
a=_getlength(D,E);
b=_getlength(E,F);
c=_getlength(D,F);
cout<<_getS(a,b,c);
return 0;
}