structPoint { double x,y; const Point operator+(const Point &t)const{return (Point){x+t.x,y+t.y};} const Point operator-(const Point &t)const{return (Point){x-t.x,y-t.y};} constdoubleoperator*(const Point &t)const{return x*t.y-y*t.x;} constdoubleoperator^(const Point &t)const{return x*t.x+y*t.y;} constdoublelen()const{returnsqrt(x*x+y*y);} const Point rotate(double c){return {x*cos(c)-y*sin(c),x*sin(c)+y*cos(c)};} };