struct Point { int id; LL x,y; Point(){} Point(LL x,LL y):x(x),y(y){} void Read(){scanf("%I64d%I64d",&x,&y);} LL operator^(const Point P)const{return x*P.y-y*P.x;} Point operator-(const Point P)const{return Point(x-P.x,y-P.y);} }me[10],mos[1050],tmp[1050]; int quad(Point a) { if(a.x>0 && a.y>=0) return 1; if(a.x<=0 && a.y>0) return 2; if(a.x<0 && a.y<=0) return 3; if(a.x>=0 && a.y<0) return 4; } bool cmp(Point a,Point b) { int l1=quad(a),l2=quad(b); if(l1==l2) { LL c=a^b; return c<0LL || (c==0LL && a.x*a.x+a.y*a.y<b.x*b.x+b.y*b.y); } return l1<l2; } bool Equal(Point a,Point b) { int l1=quad(a),l2=quad(b); return l1==l2&&(a^b)==0; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步