在平面上,如果我们有一个凸多边形 $P$,并在多边形外部的一个点 $T$ 处放置一个光源,它会照亮 $P$ 的一些边——如果 $A$ 和 $B$ 是多边形的两个相邻顶点,那么当三角形 $\triangle TAB$ 的面积不为零,且该三角形不与多边形内部相交时,边 $AB$ 就会被照亮。多边形的亮度是所有被照亮边的长度之和,而多边形的最大亮度是指我们选择一个最优的点 $T$ 时所能达到的最大可能亮度。 点 $T$ 与多边形之间的距离可以是任意的,且点 $T$ 的坐标不一定需要是整数。
图 4:来自第二个样例的凸多边形 $P, P_1, P_2$ 和 $P_3$,图中标记了最优亮度。
给你一个凸多边形 $P$,其顶点依次为点 $A_1, A_2, \dots, A_n$。多边形会经过 $q$ 步修改——在第 $j$ 步中,我们删除一个现有的多边形顶点,并得到一个新的多边形 $P_j$。更具体地说,多边形 $P_j$ 的顶点是 $P$ 中尚未被删除的顶点,且它们的顺序与在多边形 $P$ 中的顺序相同。易知每个多边形 $P_j$ 也是凸多边形。
求多边形 $P$ 以及得到的每个多边形 $P_1, P_2, \dots, P_q$ 的最大亮度。
输入格式
输入的第一行包含一个正整数 $n$——初始多边形 $P$ 的顶点数。 接下来的 $n$ 行中,第 $j$ 行包含两个整数 $x_j$ 和 $y_j$($-10^9 \le x_j, y_j \le 10^9$)——顶点 $A_j$ 的坐标。 下一行包含一个整数 $q$($0 \le q \le n - 3$)——修改的步数。 接下来的 $q$ 行中,第 $j$ 行包含一个整数 $k_j$($1 \le k_j \le n$),表示在第 $j$ 步中我们删除顶点 $A_{k_j}$。 你可以假设多边形 $P$ 中的顶点 $A_j$ 是按逆时针方向给出的,不存在两条连续的边共线,且所有下标 $k_j$ 互不相同。
输出格式
你必须输出 $q + 1$ 行。第一行必须包含初始多边形 $P$ 的最大亮度,接下来的 $q$ 行中,第 $j$ 行必须包含在第 $j$ 步后得到的多边形 $P_j$ 的最大亮度。 对于输出的每一行,与官方答案的绝对误差或相对误差在 $10^{-5}$ 以内将被接受。
子任务
| 子任务 | 分值 | 数据范围 |
|---|---|---|
| 1 | 12 | $n \le 100$ |
| 2 | 14 | $n \le 2000$ |
| 3 | 14 | $n \le 100\,000, q = 0$ |
| 4 | 29 | $n \le 100\,000$,对于每个 $j = 1, \dots, q - 1$ 满足 $k_j < k_{j+1}$ |
| 5 | 31 | $n \le 100\,000$ |
样例
输入格式 1
4 0 0 10 0 10 10 0 10 1 2
输出格式 1
20.000000 24.142136
输入格式 2
6 2 2 4 0 6 0 8 2 8 4 2 4 3 1 4 3
输出格式 2
10.828427 11.300563 10.944272 11.656854