U130370 【模板】二维凸包(加强版)
题目描述
这是二维凸包模板题(超级加强)。
给定平面直角坐标系上 $n$ 个点,请你求出它们的凸包。
当然这样还不够,您还需要求出这个凸包的周长、面积。
此外,还有 $m$ 个询问,需要您回答某个点是否在凸包内(或边界上)。
输入格式
第 $1$ 行 $2$ 个正整数 $n,m$,分别表示点的个数和询问个数。
接下来 $n$ 行,每行 $2$ 个整数,分别表示点的横、纵坐标。
接下来 $m$ 行,每行 $2$ 个整数,分别表示询问点的横、纵坐标。
输出格式
共 $m+2$ 行。
第 $1$ 行为 $1$ 个正整数,表示凸包周长**四舍五入到整数**。
第 $2$ 行为 $1$ 个正整数,表示凸包面积的$2$**倍**。
接下来 $m$ 行,每行 $1$ 个数为`0`或`-1`或`1`,其中`0`表示点在凸包上,`1`表示点在凸包内,`-1`表示点在凸包外。
说明/提示
共10组数据,前5组满足$m=0$。数据有一定梯度。
对于$100\%$的数据,$n,m\le 1 \times 10^6$,坐标的绝对值在 $10^9$ 范围内。
强度足够,凸包顶点约占所有点的一半。
询问的点50%为随机取,10%为凸包顶点,40%在凸包边附近取。
仅用于复杂度和常数测试,不保证hack错解。