3298 - 二维凸包

凸包(Convex Hull)是一个计算几何(图形学)中的概念。

在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(X1,...Xn)的凸组合来构造.

在二维欧几里得空间中,凸包可想象为一条刚好包著所有点的橡皮圈。

用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点。

输入

第一行一个数n,表示二维直角坐标系下的点数

接下来n行,每行2个数字(x_i,y_i),表示点的坐标

输出

从x最小坐标开始,逆时针输出凸包上的所有点坐标

样例

输入

7
1 1
1 9
3 5
6 9
4 4
0 8
5 6

输出

0 8
1 1
4 4
5 6
6 9
1 9

提示

n \leq 10^5 , | x_i,y_i | \leq 10^5

来源

模板

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题