Описание
Точками многоугольника являются как его внутренние точки, так и точки на границе. Выпуклым многоугольником называется такой многоугольник, в котором для любых двух его точек X и Y отрезок, соединяющий X и Y, полностью принадлежит многоугольнику. Все многольники в этой задаче выпуклые и содержат не менее 2-х вершин. Все вершины любого многоугольника в этой задаче различны и имеют целочисленные координаты. Никакие три вершины не лежат на одной прямой. Слово "многоугольник" далее всегда обозначает именно такие многоугольники.
Для двух данных многоугольников A и B их суммой Минковского называется фигура, состоящая из всех точек вида (x1+x2,y1+y2), где (x1,y1) - все возможные точки многоугольника A, и (x2,y2) - все возможные точки многоугольника B. Оказывается, что сумма Минковского двух многоугольников также является многоугольником. Рисунок иллюстрирует сумму Минковского для двух треугольников

Будем рассматривать операцию, обратную сумме Минковского. Для данного многоугольника P требуется найти такие два многоугольника A и B, что:
P является суммой Минковского A и B
A имеет от 2 до 4 различных вершин, то есть это отрезок (2 вершины), треугольник (3 вершины) или четырехугольник (4 вершины)
A должен иметь как можно больше вершин, то есть
A должен быть четырехугольником, если это возможно
если A не может быть четырехугольником, он должен быть треугольником, если это возможно
иначе он должен быть отрезком
Очевидно, что ни A и ни B не может быть равен P, поскольку в этом случае один из многоугольников A или B должен быть точкой, что не является многоугольником по определению.
Задача
Вам дан набор входных файлов, каждый из которых содержит описание многоугольника P. Для каждого входного файла вы должны найти многоугольники A и B такие, как описано выше, и создать выходной файл, содержащий описания A и B. Гарантируется, что для каждого из данных входных файлов такие многоугольники существуют. Если существует несколько вариантов ответа, запишите любой из них. Вы не должны сдавать какие-либо программы, вы должны сдать на проверку только выходные файлы.
Формат входных данных
Вам дан набор из 10 входных файлов с названиями POLYGON1.IN, POLYGON2.IN, ..., POLYGON10.IN, где число после слова POLYGON является номером теста.
Каждый входной файл имеет следующий формат: первая строка содержит одно целое число N - количество вершин многоугольника P. Следующие N строк описывают вершины многоугольника в порядке их обхода против часовой стрелки, по одной вершине в строке. Строка I+1 (I=1,2,...,N) содержит два целых числа XI и YI, разделенных пробелом: координаты I-ой вершины многоугольника. Все координаты во входных файлах - неотрицательные целые числа
Формат выходных данных
Вы должны сдать 10 выходных файлов, соответствующих данным входным файлам с описаниями искомых многоугольников A и B. Первая строка каждого выходного файла должна содержать текст:
#FILE POLYGON I, где целое число I (1<=I<=10) является номером соответствующего входного файла
Далее формат выходного файла подобен формату входного файла. Вторая строка должна содержать одно целое число NA - количество вершин многоугольника A (2<=NA<=4). Следующие NA строк должны описывать вершины многоугольника A в порядке обхода против часовой стрелки, по одной вершине в строке. Строки с номерами I+2 (I=1,2,...,NA) должны содержать по два целых числа X и Y - координаты I-ой вершины многоугольника A. Числа в строке должны разделяться одним пробелом.
Строка NA+3 должна содержать одно целое число NB - количество вершин многоугольника B, (2<=NB). Следующие NB строк должны описывать вершины многоугольника B в порядке обхода против часовой стрелки, по одной вершине в строке. Строки с номерами NA+J+3 (J=1,2,...,NB) должны содержать по два целых числа X и Y - координаты J-ой вершины многоугольника B. Числа в строке должны разделяться одним пробелом.
Например:
POLYGON0.IN 5 0 1 0 0 2 0 2 1 1 2 |  |
Для приведенного входного файла любой из двух приведенных ниже выходных файлов корректен, так как в обоих случаях A является треугольником и не может быть четырехугольником
#FILE POLYGON 0 3 0 0 2 0 2 0 1 0 0 |  |
или
#FILE POLYGON 0 3 0 0 1 0 1 1 3 0 1 0 0 1 0
|  |