printРабочее место участника

printЗадачи

1538. Формовка

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

14136.jpg
ила решила для увеличения эффективности ракетного топлива придать ему с помощью специальной машины другую форму, отличную от шарообразной. Основными элементами этой машины являются два колеса, имеющими на внешнем ободе соответствующие форме продукта канавки и выпуклости. Чтобы результат формовки не застрял в машине, профиль колес не должен иметь элементов, наклоненных к поверхности обода более чем на 90 градусов. Для определения профиля формовочных колес достаточно рассмотреть плоскость, проходящую через оси колес, и свести задачу к двумерной. Проведя прямую через многоугольник, задающему поперечный профиль результата, нужно разделить его на две части, определяющие профиль колес. Напишите программу, которая по многоугольнику, задающему требуемый поперечный профиль для ракетного топлива, определяет возможность формовки с помощью этой машины и профиль формовочных колес.
Во входном файле в первой строке содержится число `N` (`3\ ≤\ N\ ≤\ 50`) – количество углов многоугольника, не имеющего самопересечений. Далее следует `N` строк, содержащие по два целых числа через пробел, – координаты вершин многоугольника `X_i` и `Y_i` (`0\ ≤\ X_i\ ≤\ 1000`, `0\ ≤\ Y_i\ ≤\ 1000`, `1\ ≤\ i\ ≤\ N`), в порядке обхода их по часовой или против часовой стрелки.
В выходной файл вывести три целых числа `A`, `B`, `C` через пробел – параметры прямой `"Ax"+"By"+C=0`, по которой можно разделить многоугольник на две части, определяющие профиль колес. Если существует несколько вариантов, то вывести один (любой) из них. Если разделение невозможно, вывести слово "IMPOSSIBLE" (без кавычек).

Пример ввода

4
0 0
30 0
15 5
30 40

Вывод для примера

1 0 –30
loading