B. Старая крепость
Ограничения: время – 2s/4s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
В одной далекой стране ученые обнаружили странное скопление камней. Изучив его,
ученые пришли к выводу, что это части старой крепостной стены, имевшей форму
окружности. К сожалению, время и вандалы разрушили некоторые части стены.
Чтобы защитить оставшиеся фрагменты стены и продолжить их изучение в спокойной обстановке,
ученые хотят обнести фрагменты стены забором из колючей проволоки. Если сделать отдельный
забор для каждого фрагмента, будет неудобно переходить от одного фрагмента к другому,
поэтому ученые хотят сделать один общий забор, окружающий все фрагменты.
Помогите ученым посчитать минимальную возможную длину забора,
чтобы они знали, сколько просить колючей проволоки.
Ввод
Во входном файле задано два натуральных числа: число фрагментов `n` (`1\ ≤\ n\ ≤\ 180`) и радиус
крепости `r` (`1≤\ r\ ≤\ 100`). Далее следует `n` пар целых чисел, описывающих сохранившиеся
фрагменты стены: `a_i`, `b_i` — углы в градусах, соответствующие началу и концу фрагмента.
Углы отмеряются от направления на север из центра крепости, против часовой стрелки
(`0\ ≤\ a_i,\ b_i\ <\ 360`, `a_i\ ≠\ b_i`). Каждый фрагмент от начального угла к конечному также проходится
против часовой стрелки. Фрагменты не имеют общих точек.
Вывод
Выведите минимальную возможную длину забора. Ответ должен отличаться от правильного
не более, чем на `10^{-3}`.
Пример ввода
2 10
330 30
90 270
Пример вывода
61.8879020479
Источник: XII командный чемпионат школьников Санкт-Петербурга по программированию.