Місце злочину
Члени екіпажу виявили місце злочину зрадника. Тепер команда корабля хоче огородити це місце злочину.
Місце злочину має форму опуклого багатокутника A. Команда корабля прагне огородити його іншим опуклим багатокутником B, який повинен мати мінімально можливу кількість вершин. При цьому всі вершини багатокутника A повинні лежати на межі багатокутника B.
Допоможіть команді вибрати такий багатокутник B.
Вхідні дані
У першому рядку подано одне ціле число t (1 ≤ t ≤ 1000) — кількість тестових наборів. Далі наведено опис t тестів.
У першому рядку кожного тесту подано одне ціле число n (3 ≤ n ≤ 100) — кількість вершин у багатокутнику A.
У наступних n рядках подано по два цілі числа x[i]
і y[i]
— координати i-ї вершини багатокутника (|x[i]
|, |y[i]
| ≤ 1000). Вершини багатокутника подано в порядку обходу проти годинникової стрілки. Гарантується, що багатокутник є строго опуклим, тобто жодні три його послідовні вершини не лежать на одній прямій.
Вихідні дані
Для кожного тесту спочатку виведіть одне ціле число m — кількість вершин у знайденому багатокутнику B.
У наступних m рядках виведіть по два дійсних числа x[i]
і y[i]
— координати i-ї вершини багатокутника. Виводьте вершини багатокутника в порядку обходу проти годинникової стрілки. Виведений багатокутник повинен бути строго опуклим, і всі вершини вихідного багатокутника повинні знаходитися на відстані не більше 10^(-6)
від межі виведеного багатокутника.