冒泡最后仨超时,快排排序的时候怎么把每个点的坐标绑定起来
  • 板块P5143 攀爬者
  • 楼主wangfan6
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/1/18 02:47
  • 上次更新2023/10/24 03:46:57
查看原帖
冒泡最后仨超时,快排排序的时候怎么把每个点的坐标绑定起来
802884
wangfan6楼主2023/1/18 02:47
#include<stdio.h>
#include<math.h>
int main()
{
	int n,t=0;
	double d,sum=0;
	scanf("%d",&n);
	int a[50001],b[50001],c[50001];
	for(int i=0;i<n;i++)
	scanf("%d %d %d",&a[i],&b[i],&c[i]);
	for(int j=0;j<n-1;j++)
	{
		for(int k=0;k<n-1-j;k++)
		{
			if(c[k+1]<c[k])
			{
				t=a[k];
				a[k]=a[k+1];
				a[k+1]=t;
				t=b[k];
				b[k]=b[k+1];
				b[k+1]=t;
				t=c[k];
				c[k]=c[k+1];
				c[k+1]=t;
			}
		}
	}
	for(int i=0;i<n-1;i++)
	{
		d=sqrt(pow(a[i]-a[i+1],2)+pow(b[i]-b[i+1],2)+pow(c[i]-c[i+1],2));
		sum+=d;
	}
	printf("%.3lf",sum);
	return 0;
	
}
2023/1/18 02:47
加载中...