EduBrick

Оболочка с точками на сторонах

1000 мс · 256 МБ · всё или ничего

Постройте выпуклую оболочку набора точек, но на этот раз в ответ должны войти все точки границы, включая лежащие внутри сторон.

Формат ввода

В первой строке - число точек nn (1≤n≤1051 \le n \le 10^5).

В следующих nn строках - координаты точек, целые, по модулю не превосходящие 10610^6. Точки могут повторяться.

Формат вывода

В первой строке выведите число различных точек границы оболочки, затем сами точки.

Начинайте с самой левой из самых нижних и идите против часовой стрелки. Если все точки лежат на одной прямой, выведите различные точки подряд от того конца отрезка, который ниже (а при равных - левее), к другому.

Примеры

ввод
5
0 0
1 0
2 0
2 2
0 2
вывод
5
0 0
1 0
2 0
2 2
0 2
ввод
3
0 0
1 1
2 2
вывод
3
0 0
1 1
2 2
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.