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