#arc042b. [arc042_b]アリの高橋くん

[arc042_b]アリの高橋くん

问题描述

高桥君站在一个凸多边形状的板子上。高桥君会朝着他面对的方向直线行走,但我们不知道他面朝哪个方向。当高桥君到达板子的周围时,他就会掉下去。给定高桥君的位置和构成板子的凸多边形顶点的位置,请计算高桥君行走到掉下去之间的最短距离。位置都以二维坐标给出。


输入

输入数据从标准输入中读取,具体格式如下:

xx yy NN x1x_1 y1y_1 x2x_2 y2y_2 : xNx_N yNy_N

  • 第一行包含表示高桥君所在位置的整数坐标x,y(100x100,100y100)x, y (-100 ≦ x ≦ 100, -100 ≦ y ≦ 100),以空格分隔。
  • 第二行包含表示构成板子的凸多边形的顶点数N(3N10)N (3 ≤ N ≤ 10),以空格分隔。
  • 接下来NN行包含表示板子顶点坐标的整数xiyi(100xi100,100yi100)x_i y_i (-100 ≦ x_i ≦ 100, -100 ≦ y_i ≦ 100),以空格分隔。板子的顶点按逆时针顺序给出。
  • 高桥君所在位置在不包括周围的板子内部。
  • 板子保证是凸多边形。

输出

将高桥君行走到掉下去的最短距离输出为一行。如果输出结果的绝对误差或相对误差至少有一个小于10610^{−6},则认为结果是可接受的。


示例1

0 0
4
100 100
-100 100
-100 -100
100 -100

输出示例1

100

当沿着任意一边垂直行走时,需要行走100100距离才会从板子上掉下。

图片


示例2

10 10
3
0 100
-100 -100
100 -100

输出示例2

31.3049516850

图片


示例3

34 6
7
-43 -65
-23 -99
54 -68
65 92
16 83
-18 43
-39 2

输出示例3

25.0284205314

图片