Место преступления
Место преступления
Члены экипажа обнаружили место преступления предателя. Теперь команда корабля хочет огра-дить это место преступления.
Место преступления выглядит как выпуклый многоугольник A. Команда корабля хочет оградить его другим выпуклым многоугольником B. Причем, у B должно быть минимальное возможное число вершин. И все вершины многоугольника A должны лежать на границе многоугольника B.
Помогите команде выбрать такой многоугольник B.
Входные данные
В первой строке дано одно целое число t (1 ≤ t ≤ 1000) количество тестовых наборов. Далее дано описание t тестов.
В первой строке каждого теста дано одно целое число n (3 ≤ n ≤ 100) - количество вершин в многоугольнике A.
В следующих n строках даны по два целых числа xi
и yi
координаты i-й вершины многоугольника (|xi
|, |yi
| ≤ 1000). Вершины многоугольника даны в порядке обхода против часовой стрелки. Гарантируется, что многоугольник является строго выпуклым. То есть, в том числе, никакие три его последовательные вершины не лежат на одной прямой.
Выходные данные
Для каждого теста сначала выведите одно целое число m - количество вершин в найденном многоугольнике B.
В следующих m строках выведите по два вещественных числа xi
и yi
координаты i-й вершины многоугольника. Выводите вершины многоугольника в порядке обхода против часовой стрелки. Выведенный многоугольник должен быть строго выпуклым. А также, все вершины исходного многоугольника должны находиться на расстоянии не более 10-6
от границы выведенного многоугольника.
3 3 1 0 1 1 0 1 4 0 0 1 0 1 1 0 1 5 1 0 3 0 3 2 1 2 0 1
3 1.000000000000000 0.000000000000000 1.000000000000000 1.000000000000000 0.000000000000000 1.000000000000000 3 0.000000000000000 0.000000000000000 2.000000000000000 0.000000000000000 0.000000000000000 2.000000000000000 3 3.000000000000000 0.000000000000000 3.000000000000000 4.000000000000000 -1.000000000000000 -0.000000000000000