struct point{ double x,y };
double dist(point a,point b){
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
long long C(int n,int m){
if(m<n-m) m=n-m;
long long res=1;
for(int i=m+1;i<=n;i++) res*=i;
for(int i=1;i<=n-m;i++) res/=i;
return res;
}
//floor(sqrt(n)+0.5)
//用四舍五入避免浮点误差
//因为开根的时候 如 sqrt(4) 得到的可能是 1.99999
bool Prime(int n){
if(n<=1) return false;
int sqr=floor(sqrt(n)+0.5);
for(int i=2;i<=sqr;i++)
if(n%i==0) return false;
return true;
}