Петрик та вертикальна ферма
Обмеження: 2 сек., 256 МіБ
Сьогодні в Україні ухвалили новий закон про податок на землю, і відповідно до змін до Конституції, тепер потрібно платити не за кожний квадратний метр, а за периметр усієї ділянки.
Петрик захотів відкрити свою вертикальну ферму з вирощування квітів, проте не знав, як можна ефективно знайти периметр цієї вертикальної ферми. Вертикальна ферма складається з глечиків з квітками. В одній точці можуть міститись кілька глечиків.
Допоможіть Петрику знайти периметр опуклої оболонки, яку утворює ця ферма.
Вхідні дані
У першому рядку задано ціле число n — кількість глечиків з квітками.
У наступних n рядках задано по два цілих числа xi та yi — координати глечиків.
Вихідні дані
В одному рядку виведіть дійсне число — периметр опуклої оболонки з абсолютною або відносною похибкою не більшою як 10−7.
Якщо в опуклу оболонку входить лише одна точка — периметр буде рівний 0, якщо опукла оболонка є відрізком, то її периметром будемо вважати довжину відрізка.
Обмеження
3≤n≤105,
|xi|,|yi|≤109.
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
5 0 0 2 0 0 2 1 1 2 2 | 8.0000000 |
Примітки
Опуклу оболонку будуть утворювати точки (0;0), (0;2), (2;0) та (2;2). Периметр опуклої оболонки буде рівний сумі довжин відрізків, які утворюють цю опуклу оболонку.