旋转卡壳求凸包直径
cpp
int rotating_calipers(vector<Point> &hull){//旋转卡壳求凸包直径平方
if(is_line(hull))return (hull[0]-hull.back()).dis();
int res=0;
for(int i=0,j=2;i<hull.size();i++){
auto d=hull[i],e=hull[(i+1)%hull.size()];
while(area(d,e,hull[j])<area(d,e,hull[(j+1)%hull.size()]))j=(j+1)%hull.size();
res=max({res,(d-hull[j]).dis(0),(e-hull[j]).dis(0)});
}
return res;
}