全Wa
  • 板块P5143 攀爬者
  • 楼主QueenSc
  • 当前回复8
  • 已保存回复8
  • 发布时间2020/12/3 13:30
  • 上次更新2023/11/5 06:49:24
查看原帖
全Wa
410063
QueenSc楼主2020/12/3 13:30
#include<stdio.h>
#include<cmath>
struct god {
	int x,y,z;
} a[50005];
void kp(int low,int hg) {
	//int lon=hg+low,i=low,j=hg;
	int i=low,j=hg;
	if(i<j) {
		//int x=a[lon/2].z,temp;
		//a[lon/2].z=a[low].z;
		//a[low].z=x;
		int x=a[low].z,y=a[low].y,z=a[low].x;
		while (i<j) {

			while(i<j&&a[j].z>a[low].z)
				j--;
			if(j>i)
			{
				a[i++].z=a[j].z;
				a[i-1].y=a[j].y;
				a[i-1].x=a[j].x;
			}
			while(i<j&&a[i].z<a[low].z)
				i++;
			if(j>i)
			{
				a[j--].z=a[i].z;
				a[j-1].y=a[i].y;
				a[j-1].x=a[i].x;
			}
		}
		a[i].z=x;
		a[i].y=y;
		a[i].x=z;
		kp(low,i-1);
		kp(i+1,hg);
	}
}
int main() {
	int n,xt,yt,zt;
	scanf("%d",&n);
	int i;
	for(i=1; i<=n; i++) 
		scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
	kp(1,n);
	double h=0;
	for(i=2;i<=n;i++)
	{
		h+=sqrt((a[i].z*1.0-a[i-1].z*1.0)*(a[i].z*1.0-a[i-1].z*1.0)+(a[i].x*1.0-a[i-1].x*1.0)*(a[i].x*1.0-a[i-1].x*1.0)+(a[i].y*1.0-a[i-1].y*1.0)*(a[i].y*1.0-a[i-1].y*1.0));
	}
	printf("%.3f",h);
	return 0;
}
2020/12/3 13:30
加载中...