#include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) #define pii pair<int,int> #define pdd pair<double,double> #define int long long #define ll long long #define ld long double #define N 100001 #define all(x) x.begin(),x.end() #define eps 1e-9 #define x first #define y second
usingnamespace std;
structpt{ int x,y; booloperator < (pt const &b){ if(x == b.x)return y < b.y; return x < b.x; } booloperator > (pt const &b){ if(x == b.x)return y > b.y; return x > b.x; } booloperator == (pt const &b){ if(x-b.x == 0 && y-b.y == 0)returntrue; returnfalse; } pt operator+(pt const &b) {return {x + b.x, y + b.y};} //向量相加 pt operator-(pt const &b) {return {x - b.x, y - b.y};} //向量相減 intoperator^(pt const &b) {return x * b.y - y * b.x;} //向量外積cross intoperator*(pt const &b) {return x * b.x + y * b.y;} //向量內積dot };