AT1202Contest_g Net of Net

题目描述

给定一个三维凸多面体 $P$,它的展开图是指满足以下条件的平面上的多边形集合: - 每个多边形与 $P$ 的一个面一一对应 - 通过沿着边进行折叠操作,可以构造出 $P$ 其中,沿着边进行折叠的操作定义如下: - 选择一条边,使得如果移除该边,当前的图形将变为非连通的。然后,以该边为轴,在当前图形上,将该边的一侧部分整体旋转任意角度(在三维空间中)。如果需要,可以将完全相同的顶点或边等同视之。 类似地,三维凸多面体 $P$ 的展开图的展开图是指满足以下条件的线段集合: - 每条边与 $P$ 的展开图的边一一对应 - 通过沿着顶点进行折叠操作,可以构造出 $P$ 的展开图 其中,沿着顶点进行折叠的操作定义如下: - 选择一个顶点,使得如果移除该顶点,当前的图形将变为非连通的。然后,以该顶点为中心,在当前图形上,将该顶点的特定侧部分整体旋转任意角度(在二维空间中)。如果需要,可以将完全相同的顶点等同视之。 给定一组在单位球面上的 $N$ 个点,其中任意四个点都不在同一平面上。点 $i$ 的坐标为$(x_i,y_i,(-1)^{c_i}\sqrt{1-x_i^2-y_i^2})$。 判断是否存在点集的凸包的展开图的展开图是一条路径,并计算该路径的最大长度。

输入格式

输入以以下形式从标准输入中给出。实数的小数部分最多包含6位。 > $ N $ $ x_1 $ $ y_1 $ $ c_1 $ $ \vdots $ $ x_N $ $ y_N $ $ c_N $

输出格式

如果存在点集的凸包的展开图的展开图是一条路径,则输出答案。否则,输出-1。 真实答案与你的答案的绝对误差或相对误差不超过$10^{-7}$时,才被认为是正确的。 ### 约束条件 - $ 4\ \leq\ N\ \leq\ 14 $ - $ -1\leq\ x_i,y_i \leq\ 1 $ - $ c_i $ 是 $ 0 $ 或 $ 1 $ - $ x_i^2+y_i^2\leq\ 1 $ - 给出的任意两个点都不同 - 给出的所有不同的四个点$p,q,r,s$,$p,q,r$所在的平面与$s$之间的距离大于$10^{-5}$ Translate by [@XYQ_102](https://www.luogu.com.cn/user/712337)

说明/提示

### 制約 - $ 4\ \leq\ N\ \leq\ 14 $ - $ -1\leq\ x_i,y_i\leq\ 1 $ - $ c_i $ は $ 0 $ または $ 1 $ - $ x_i^2+y_i^2\leq\ 1 $ - 与えられるどの $ 2 $ 点も相異なる - 与えられるすべての異なる四点 $ p,q,r,s $ に対して,$ p,q,r $ が乗っている平面と $ s $ の間の距離は $ 10^{-5} $ 以上 ### Sample Explanation 1 たとえば,図のような展開が最適です. !\[\](https://img.atcoder.jp/DEGwer2023/G\_zu.png)図: 展開の例