你是负责为新型太空漫游车设计轮子的工程师。由于你没有足够的时间去重新发明轮子,你决定直接套用前任的工作,并且只做一处微小的修改。
看着设计图,你注意到出于结构原因,你前任设计的轮子呈凸多边形。众所周知,周长越大的轮子每转一圈滚得越远,所以它们肯定更优越。你试图通过移动轮子边缘上的一个点,来尽可能地增加周长。在实验过程中,你发现如果轮子是非凸的,或者存在小于 $90$ 度的内角,轮子似乎就无法正常工作。
在不违反上述限制的前提下,轮子周长最大可能增加多少?
图 E.1:第一个样例的示意图。点 3 被移动到 $(5.5, 3.5)$,周长增加了约 $1.59488$。
输入格式
输入包含:
- 一行,包含一个整数 $n$($4 \le n \le 10^5$),表示轮子的顶点数。
- $n$ 行,每行包含两个整数 $x$ 和 $y$($|x|, |y| \le 10^5$),表示顶点的坐标。
这些点按逆时针顺序给出,并构成一个没有小于 $90$ 度内角的凸多边形。注意,该凸多边形可能包含共线的点,但没有两个点在同一位置。
输出格式
输出轮子周长最大可能的绝对增加量。
你的答案与标准答案的绝对或相对误差应不超过 $10^{-6}$。
样例
输入样例 1
5 1 1 4 1 4 3 3 5 1 4
输出样例 1
1.594883917346
输入样例 2
7 0 -4 3 -3 5 -2 3 2 -6 -2 -6 -4 -2 -4
输出样例 2
3.151142198204
输入样例 3
4 0 0 1 0 1 1 0 1
输出样例 3
0.000000000000