输出0不理解qwq
查看原帖
输出0不理解qwq
787031
UKE_Piu楼主2024/12/13 23:39

输出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;
}
2024/12/13 23:39
加载中...