#include<bits/stdc++.h>
using namespace std;
int N;
int qsort(int input[][3],int low,int high);
//快速排序,对input数组的low-high进行排序
void Quicksort(int input[][3],int low,int high){
if(low<high){
int mid=qsort(input,low,high);
Quicksort(input,low,mid-1);
Quicksort(input,mid+1,high);
}
}
//进行一次快排,返回枢纽的位置
int qsort(int input[][3],int low,int high){
input[0][2]=input[low][2]; //选择low号位当枢纽
input[0][1]=input[low][1];
input[0][0]=input[low][0];
while(low<high){
while(low<high&&input[high][2]>=input[0][2])
high--;
input[low][0]=input[high][0];
input[low][1]=input[high][1];
input[low][2]=input[high][2];
while(low<high&&input[low][2]<=input[0][2])
low++;
input[high][0]=input[low][0];
input[high][1]=input[low][1];
input[high][2]=input[low][2];
}
input[low][0]=input[0][0];
input[low][1]=input[0][1];
input[low][2]=input[0][2];
return low;
}
int main()
{
cin>>N;
int i,j;
int input[N+1][3];
for(i=1;i<=N;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&input[i][j]);
}
}
Quicksort(input,1,N);
double sum=0;
for(i=1;i<N;i++)
{
sum+=sqrt((input[i][0]-input[i+1][0])*(input[i][0]-input[i+1][0])+(input[i][1]-input[i+1][1])*(input[i][1]-input[i+1][1])+(input[i][2]-input[i+1][2])*(input[i][2]-input[i+1][2]));
}
printf("%.3lf",sum);
}
P5143 攀爬者
最新推荐文章于 2024-04-15 21:55:05 发布