eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Робот

Робот

Вы участвуете в соревновании по программированию роботов. В следующем соревновании робот должен пройти через n точек на плоскости в определенном порядке. Путь робота должен также удовлетворять следующим условиям:

  • Каждая часть пути между двумя точками должна быть либо прямой, либо дугой.
  • Весь путь должен представлять собой гладкую кривую. Это означает, что направления касательных соседних участков пути в общей точке должны совпадать.

Для победы Вам следует найти требуемый путь робота наименьшей длины.

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

Первая строка содержит количество точек n (2n1000). Каждая из следующих n строк содержит два целых числа xi и yi, не превосходящих по модулю 106: координаты i-ой точки. Робот должен пройти точки в таком же порядке, в каком они поступают на вход. Каждые две соседние точки различны. Однако не гарантируется, что все входные точки будут различными.

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

Вывести одно действительное число: длину кратчайшего пути. Относительная или абсолютная ошибка не должна превосходить 10-6.

Ліміт часу 2 секунди
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
2
0 0
3 4
Вихідні дані #1
5.0000000000
Вхідні дані #2
5
1 0
0 1
-1 0
0 -1
1 0
Вихідні дані #2
6.2831853072
Джерело 2013 Петрозаводск, MIPT contest, Август 25, Задача B