Олимпиадный тренинг

Задача . Lights Out


Задача

Темы:
Фермер Джон установил новый доильный аппарат, но он берёт так много энергии, что иногда отключается свет в амбаре. Это случается так часто, что Беси запомнила план амбара, чтобы было проще добираться до выхода в темноте.

Амбар описан простым (несамопересекающимся прямоугольником) с вершинами в целочисленных координатах \((x_1, y_1) \ldots (x_n, y_n)\) перечисленных по часовой стрелке. Его рёбра чередуются между горизонтальными (параллельными оси Х и вертикальными - параллельными оси Y). Первое ребро может быть как вертикальным, так и горизонтальным. Выход расположен в точке \((x_1, y_1)\). Беси начинает внутри амбара, в одной из некоторых вершин \((x_i, y_i)\) для \(i > 1\). Она может двигаться только по периметру амбара, по часовой стрелке либо против часовой стрелки. Её цель - пройти минимальное расстояние до выхода. Это относительно легко, когда свет включён. Поскольку она просто должна выбрать какой путь короче от текущего положения до выхода - по часовой стрелке или против часовой стрелки.

Когда свет выключается, Беси паникует и забывает вершину, в которой она находится. К счастью, она всё ещё помнит точную карту амбара, поэтому она может вычислить свою позицию, двигаясь по периметру и используя свои ощущения. Когда она стоит в вершине (включая свою начальную вершину), она может ощутить внутренний угол при этой вершине. и также она может сказать является ли эта вершина выходом. Когда она движется вдоль амбара, она может определить точную длину ребра, по которому прошла. Беси двигается в соответствии со следующей стратегией: она движется по часовой стрелке по периметру амбара, до тех пор, пока она не ощутит достаточное количество углов и рёбер, чтобы определить, в какой вершине она сейчас находится. В этой точке она легко может вычислить, как ей быстрее добраться до выхода - продолжив движение по часовой стрелке или переключившись на движение против часовой стрелки.

Помогите Беси определить наибольшую величину, на которую возрастёт её путь к выходу в темноте, по сравнению с путём при свете (рассмотрев все возможные положения стартовой вершины).

ФОРМАТ ВВОДА (файл lightsout.in):

Первая строка ввода содержит \(N\) (\(4 \leq N \leq 200\)). Каждая из последующих \(N\) строк содержит два целых числа, описывающих точки \((x_i, y_i)\) в порядке обхода амбара по часовой стрелке. Эти целые числа в диапазоне \(-100,000 \ldots 100,000\).

ФОРМАТ ВВОДА (файл lightsout.out):

Выведите наибольшее число, на которое возрастёт расстояние при наихудшей стартовой позиции.


Примеры
Входные данныеВыходные данные
1 4
0 0
0 10
1 10
1 0
2

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя