CF35E Parade

题目描述

在 Berland,没有一场大捷的年度纪念日会在没有阅兵的情况下度过,今年也不例外。这就是为什么准备工作正在被全力进行。坦克被排成一列,炮兵和骑兵已经准备好开火,士兵们正在中央广场行军......空军上将 Generalov 先生又陷入到了麻烦之中。今年建造了一批摩天大楼,这使得飞机难以从城市上空飞过。飞机已经被确定要严格地从南向北飞。此外,在飞机的路线中一定不能出现大楼,否则纪念日将会变成一场悲剧。建筑部给出了 $n$ 栋摩天大楼的数据(其他建筑足够小以致于不会影响飞机飞行)。当把城市看作一个由南向北的几何平面时,第 $i$ 个建筑是一个高 $h_i$ 的矩形。它的最左侧点的横坐标为 $l_i$,最右侧点的横坐标为 $r_i$。此区域的地形是平原,所以所有建筑都在同一水平面上。作为国防部的首席程序员,你的任务是用摩天大楼的数据找出一条包住它们的折线。折线需要满足的性质如下: - 如果你将城市看作由南向北的平面,任意建筑的任意部分都在折线和地平线围成的封闭图形的内部或边上。 - 折线的起点和终点都在地平线上,即高度为 $0$。 - 构成折线的线段必须平行于坐标轴,即为水平的或竖直的。 - 折线的结点应为整点。 - 果你将城市看作由南向北的平面,折线和地平线构成的图形的面积应尽可能小。 - 折线的两条连续的构成线段均互相垂直。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF35E/23dca3b6890c3864c0838cb5956c4323cb001fd2.png)\ 样例 2 的图片(包围的折线在右图中被标记)。

输入格式

第一行一个整数 $n(1\le n\le 10^5)$。 接下来 $n$ 行,每行三个整数 $h_i,l_i,r_i(1\le h_i\le 10^9,-10^9\le l_i

输出格式

第一行输出一个整数 $m$,表示包围折线的结点个数。 接下来 $m$ 行,每行输出两个整数,表示折线结点的横坐标和纵坐标。你需要按从左往右遍历折线的顺序输出结点的坐标。记得折线的第一个和最后一个结点的高度应为 $0$。