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


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 256M

Authors:
Problem type

Задано множину з \(n\) точок на двовимірній площині. Ваше завдання — знайти опуклу оболонку цієї множини.

Опукла оболонка — це найменший опуклий багатокутник, який містить усі задані точки на своїй межі або всередині себе.

Input

Перший рядок стандартного входу містить одне ціле число \(n\) — кількість точок.

У наступних \(n\) рядках задано координати точок. Кожен рядок містить два цілі числа \(x\) і \(y\) — координати відповідної точки.

Гарантується, що всі точки є унікальними, і площа опуклої оболонки строго додатна.

Обмеження:

\(3 \leq n \leq 200000\)
\( -10^9 \leq x, y \leq 10^9\)

Output

У перший рядок стандартного виходу виведіть одне число \(k\) — кількість точок в опуклій оболонці.

У наступних \(k\) рядках виведіть координати точок, які належать опуклій оболонці. Точки можна виводити в будь-якому порядку.


Comments

There are no comments at the moment.