Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Вписанная окружность

(Время: 1 сек. Память: 16 Мб Сложность: 68%)

Очень интересными объектами, которые изучаются в планиметрии, являются вписанные и описанные окружности. Известно, например, что вокруг любого треугольника можно описать окружность и в любой треугольник можно вписать окружность. А что будет, если вместо треугольника задан выпуклый многоугольник?

Требуется написать программу, которая определяет, можно ли в заданный выпуклый многоугольник вписать окружность, и, если это можно сделать, то вычисляет координаты ее центра и радиус.

Входные данные

Первая строка входного файла INPUT.TXT содержит количество вершин многоугольника n (3 ≤ n ≤ 8). Последующие n строк содержат координаты вершин многоугольника в порядке обхода против часовой стрелки, каждая i-ая из них содержит два целых числа: xi и yi, значения которых не превосходят 1000 по абсолютной величине.

Выходные данные

В первой строке выходного файла OUTPUT.TXT необходимо вывести YES, если окружность, вписанная в заданный многоугольник, существует, в противном случае следует вывести слово NO . В случае положительного ответа во второй строке следует указать координаты центра окружности и ее радиус. Числа следует выводить с тремя знаками после точки (даже если там нули), округляя их до 10-3 по математическим правилам. Число «0.000» следует выводить без знака «-».

Примеры

INPUT.TXTOUTPUT.TXT
14
0 0
1 0
1 1
0 1
YES
0.500 0.500 0.500
24
0 0
1 0
1 2
0 2
NO

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

[Обсуждение] [Все попытки] [Лучшие попытки]

Красноярский краевой Дворец пионеров, (c)2006 - 2017, ICQ: 151483