Очень интересными объектами, которые изучаются в планиметрии, являются вписанные и описанные окружности. Известно, например, что вокруг любого треугольника можно описать окружность и в любой треугольник можно вписать окружность. А что будет, если вместо треугольника задан выпуклый многоугольник?
Требуется написать программу, которая определяет, можно ли в заданный выпуклый многоугольник вписать окружность, и, если это можно сделать, то вычисляет координаты ее центра и радиус.
Формат входных данных
Первая строка входного файла количество вершин многоугольника n (3 ≤ n ≤ 8). Последующие n строк содержат координаты вершин многоугольника в порядке обхода против часовой стрелки, каждая i-ая из них содержит два целых числа: xi и yi, значения которых не превосходят 1000 по абсолютной величине.
Формат выходных данных
Если окружность, вписанная в заданный многоугольник, существует, необходимо вывести в первой строке выходного файла слово YES, иначе – слово NO. В случае положительного ответа выведите во второй строке координаты центра окружности и ее радиус. При проверке решения задачи все величины будут сравниваться с точностью до 10-6.
Примеры входных и выходных файлов
входные данные |
выходные данные |
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 |