#include #include #include using namespace std; struct Point { double x,y; Point(double _x=0,double _y=0):x(_x),y(_y) { } inline bool operator<(const Point &b) { return x0?1:-1); } inline double PolygonArea(Point *p,int n) { double area=0; for(int i=1;i0; } inline Point GetLineIntersection(const Line &a,const Line &b) { Vector u=a.P-b.P; double t=Cross(b.v,u)/Cross(a.v,b.v); return a.P+a.v*t; } int HalfplaneIntersection(Line *L,int n,Point *poly) { sort(L,L+n); int head,tail; Point *p=new Point[n]; Line *q=new Line[n]; q[head=tail=0]=L[0]; for(int i=1;i=3) ans=PolygonArea(res,reslen); printf("%.3lf\n",ans); return 0; }