eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Опукла оболонка

Опукла оболонка

Вам задано множину точок на площині. Знайдіть їх опуклу оболонку. \InputFile Перший рядок вхідного файлу містить ціле число \textbf{n} - кількість точок (\textbf{3} ≤ \textbf{n} ≤ \textbf{200000}). У наступних \textbf{n} рядках описано точки. \textbf{i}-ий рядок складається з двох цілих чисел - координат \textbf{i}-ої точки. Координати не перевищують \textbf{10^9} по модулю. Гарантується, що усі точки не лежать на одній прямій. Точки можуть співпадати. \OutputFile У перший рядок вихідного файлу виведіть кількість вершин в опуклій оболонці. У другу - номери вершин через пропуск, які її утворюють. Виведіть вершини у порядку обходу проти годинникової стрілки. Ніякі два ребра опуклої оболонки не ровинні лежати на одній прямій. У третій рядок виведіть периметр оболонки, у четверту - її площу. Периметр повинен бути виведений з абсолютною чи відносною похибкою не більше \textbf{10^\{-9\}}. Площа повинна бути виведена абсолютно точно.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #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