洛谷 P5143 攀爬者
错了三个测试点
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
struct height{
double x,y,z;
};
bool cmp(height x,height y){
return x.z<y.z;
}
double sum;
height num[10010];
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>num[i].x>>num[i].y>>num[i].z;
}
sort(num+1,num+n+1,cmp);
// for(int i=1;i<n;i++){
// int k=i;
// for(int j=i;j<=n;j++){
// if(num[k].z>num[j].z){
// k=j;
// }
// }
// swap(num[k],num[i]);
// } 快排会超时
for(int i=1;i<n;i++){
sum+=sqrt((num[i].x-num[i+1].x)*(num[i].x-num[i+1].x)+(num[i].y-num[i+1].y)*(num[i].y-num[i+1].y)+(num[i].z-num[i+1].z)*(num[i].z-num[i+1].z));
}
printf("%0.3f",sum);
return 0;
}