#4689. 爬山

爬山

题目描述

小乔高考结束,跟他的小伙伴们相约一起去爬山。他在地形图上标记了 nn 个点,每个点 pip_i 都有一个坐标 (xi,yi,zi)(x_i,y_i,z_i)。所有点对中,高度值 zz 不会相等。小乔准备从最低的点爬到最高的点,他的攀爬满足以下条件:

  • 经过他标记的每一个点;
  • 从第二个点开始,他经过的每一个点高度 zz 都比上一个点高;
  • 小乔会飞,他从一个点 PiP_i 爬到 PjP_j 的距离为两个点的欧几里得距离。即 (xixj)2+(yiyj)2+(zizj)2\sqrt{(x_i-x_j)^2+(y_i-y_j)^2+(z_i-z_j)^2}

现在,小乔 希望你能求出他攀爬的总距离。

输入格式

第一行,一个整数 nn 表示地图上的点数。

接下来 nn 行,三个整数 xi,yi,zix_i,y_i,z_i 表示第 ii 个点的坐标。(1n500001\le n\le 50000,答案的范围在 double 范围内)

输出格式

一个实数,表示 小乔 需要攀爬的总距离(保留三位小数)

5
2 2 2
1 1 1
4 4 4
3 3 3
5 5 5
6.928