Опукла оболонка
Задано множину з \(n\) точок на двовимірній площині. Ваше завдання — знайти опуклу оболонку цієї множини.
Опукла оболонка — це найменший опуклий багатокутник, який містить усі задані точки на своїй межі або всередині себе.
Input
Перший рядок стандартного входу містить одне ціле число \(n\) — кількість точок.
У наступних \(n\) рядках задано координати точок. Кожен рядок містить два цілі числа \(x\) і \(y\) — координати відповідної точки.
Гарантується, що всі точки є унікальними, і площа опуклої оболонки строго додатна.
Обмеження:
\(3 \leq n \leq 200000\)
\( -10^9 \leq x, y \leq 10^9\)
Output
У перший рядок стандартного виходу виведіть одне число \(k\) — кількість точок в опуклій оболонці.
У наступних \(k\) рядках виведіть координати точок, які належать опуклій оболонці. Точки можна виводити в будь-якому порядку.
Comments