#include
#include
#include
#include
usingnamespacestd;
typedefstruct
{
doublex,y;
}Point;
Pointpoint[1001],stack[1001];
intn,top;
doublel;
doubleMulti(Pointp0,Pointp1,Pointp2)
{
return((p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y));
}
doubleDis(Pointp1,Pointp2)
{
returnsqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
intcmp(Pointa,Pointb)
{
if(Multi(point[0],a,b)>0)return1;//相对p0来说,pj的极角大于pi的极角,pi先被扫描
if(Multi(point[0],a,b) --> |