#460. 风控模型

风控模型

题目描述

很多金融团队是通过模型的方式进行事前风控,风控模型内切在选股模型当中,在某些舆情信息出现之后,如果是负面的,就会直接剔除相关个股,防止出现极端市场行情导致大跌的后果。这种风控模型称之为“风火轮”。

风火轮的外壳是一个半径为 rr 的空心圆,内部有一个 nn 个点的凸多边形,这个多边形在圆壳的内部滚动。多边形顶点按照逆时针顺序给出,保证每一个顶点都有机会接触圆壳。

起初 11 号点和 22 号点一定在圆上,初始以 11 号点为轴心、然后依次以 2,3,...,n2, 3, ..., n 号点为轴心“滚动”。具体地讲,在以 ii 号点为轴心“滚动”时,多边形将保持 ii 号点不动,并以该点为中心开始顺时针旋转,直到 i+1i+1 号点接触圆为止,然后更换轴心,继续“滚动”。

求多边形从初始开始滚动、直到 11 号点再次到达圆上成为轴心为止, 11 号点在整个滚动过程中所经过的路程是多少。

image

输入格式

第一行输入两个正整数 n, rn,\ r

接下来 nn 行,每行两个浮点数 xi, yix_i,\ y_i 代表 ii 号点的初始坐标。

输出格式

输出一行一个浮点数,代表答案。

样例

样例输入

3 5
0 0
1 0
0 3

样例输出

8.05082557797666886756

数据范围与提示

n100n \le 100

104<xi, yi<104-10^4 < x_i,\ y_i < 10^4​

2104r41042 \cdot 10^4 \le r \le 4 \cdot 10^4

本题使用spj评测,只要绝对值误差不超过 10610^{-6} 即可评测通过。样例虽然不满足 rr 的限制,但是是一个好的样例,你的程序应当能够通过样例。