Problems
Выпуклая оболочка
Выпуклая оболочка
Вам дано множество точек на плоскости.
Найдите их выпуклую оболочку.
\InputFile
Первая строка входного файла содержит целое число \textbf{n} - количество точек (\textbf{3} ≤ \textbf{n} ≤ \textbf{200000}). В следующих \textbf{n} строках описываются точки. \textbf{i}-я строка состоит из двух целых чисел - координат \textbf{i}-й точки. Координаты не превосходят \textbf{10^9} по модулю. Гарантируется, что все точки не лежат на одной прямой. Точки могут совпадать.
\OutputFile
В первую строчку выходного файла выведите количество вершин в выпуклой оболочке. Во вторую - номера вершин через пробел, которые её образуют. Выведите вершины в порядке обхода против часовой стрелки. Никакие два ребра выпуклой оболочки не должны лежать на одной прямой.
В третью строчку выведите периметр оболочки, в четвертую - её площадь.
Периметр должен быть выведен с абсолютной или относительной погрешностью не больше \textbf{10^\{-9\}}. Площадь должна быть выведена абсолютно точно.
Input example #1
9 0 0 1 1 2 2 1 0 0 1 2 0 0 2 2 1 1 2
Output example #1
4 3 7 1 6 8.00000000000000000000 4.0