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

printЗадачи

2233. Ограда от пингвинов

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

Селекционер Сэм пытается вырастить новые морозоустойчивые виды яблонь для будущих марсианских поселений. Для защиты от пингвинов сад окружен оградой в форме выпуклого многоугольника. Столбы этой ограды расположены в вершинах многоугольника и на его сторонах. Пингвины научились перепрыгивать через невысокую ограду и разводить костры для обогрева из сломанных веток, поэтому Сэм хочет заменить эту ограду на более высокую, используя существующие столбы. При этом все деревья должны оказаться строго внутри новой ограды, а новая ограда должна представлять собой выпуклый многоугольник с минимальным периметром, вершины которого находятся на столбах старой ограды.
Первая строка ввода содержит одно целое число `N` (`3\ ≤\ N\ ≤\ 250`) – количество столбов в старой ограде. Каждая из следующих `N` строк содержит два целых числа – координаты столбов в порядке обхода ограды по часовой стрелке. Следующая строка содержит одно целое число `K` (`1\ ≤\ K\ ≤\ 10000`) – количество деревьев в саду. Каждая из следующих `K` строк содержит два целых числа – координаты деревьев. Гарантируется, что все деревья находятся строго внутри старой ограды. Все координаты точек различны и не превосходят по абсолютному значению `10^6`.
Вывести одно число – минимальную длину новой ограды с точностью `10^{-4}`.

Пример ввода 1

6
-20 -10
-10 20
10 20
20 10
10 -20
-10 -20
2
0 10
0 -10

Пример вывода 1

120.0000

Пример ввода 2

4
0 4
4 4
4 0
0 0
3
1 3
2 3
1 2

Пример вывода 2

13.6569
loading