Очень
интересными объектами, которые изучаются в планиметрии, являются вписанные и
описанные окружности. Известно, например, что вокруг любого треугольника можно
описать окружность и в любой треугольник можно вписать окружность. А что будет,
если вместо треугольника задан выпуклый многоугольник?
Окружность называется вписанной в
многоугольник, если она имеет точку касания с каждой стороной многоугольника.
Требуется написать программу, которая
определяет, можно ли в заданный выпуклый многоугольник вписать окружность, и,
если это можно сделать, то вычисляет координаты её центра и радиус.
Формат входных данных
Первая строка входного файла содержит
количество вершин многоугольника n (3 £ n £ 8). Последующие n строк
содержат координаты вершин многоугольника в порядке обхода против часовой
стрелки, каждая строка содержит два целых числа: xi и yi,
значения которых не превосходят 1000 по абсолютной величине.
Формат выходных данных
Если окружность, вписанная в заданный
многоугольник, существует, необходимо вывести в первой строке выходного файла
слово YES, иначе — слово NO. В случае положительного ответа
выведите во второй строке координаты центра окружности и её радиус через
пробел. При проверке решения задачи все величины будут сравниваться с
абсолютной точностью 10-6.
Примеры
входных и выходных файлов
STDIN
|
STDOUT
|
4
0 0
1 0
1 1
0 1
|
YES
0.5 0.5 0.5
|
4
0 0
1 0
1 2
0 2
|
NO
|