#include #include #include #include #include #include #include #include #include #include #define ll long long #define db double #define PB push_back #define lson k<<1 #define rson k<<1|1 using namespace std; const int N = 55; const db eps = 1e-8; const db PI = acos(-1.0); const ll MOD = 1000000007; int n,m,mp[N][N]; bool mk[N]; ll c; int sgn(db t) { return t<-eps?-1:t>eps; } ll inv(ll t) { ll res=1,k=MOD-2; while(k) { if(k&1) res=(res*t)%MOD; t=(t*t)%MOD; k>>=1; } return res; } struct E { int a,b; void input() { scanf("%d%d",&a,&b); } } ed[N*N]; struct P { db x,y; int id; void input() { int _x,_y; scanf("%d%d",&_x,&_y); x=_x,y=_y; } P(db _x=0,db _y=0):x(_x),y(_y){} P rot(db thta) { return P(x*cos(thta)-y*sin(thta), x*sin(thta)+y*cos(thta)); } P rotByP(P center,db thta) { P tmp(x-center.x,y-center.y); P ans=tmp.rot(thta); ans=ans+center; return ans; } P operator + (const P &t) const { return P(x+t.x,y+t.y); } bool operator == (const P &t) const { return sgn(x-t.x)==0&&sgn(y-t.y)==0; } }p[N],pb,np[N]; int pt[N]; ll g,ans; bool check() { for(int i=0;i