首页 > 代码库 > 线段长度

线段长度

描述 Description

数轴上有N个点,任意两点连线得到n(n-1)条线段,试求线段的总长。

输入格式 InputFormat

第一行,一个整数N,表示点数。
接下来N行,每行一个整数X_i,表示点的坐标。

输出格式 OutputFormat

一个整数,表示线段的总长。


样例输入:

5
1
5
3
2
4


样例输出:

40


数据范围和注释 Hint

N <= 10000 , 0 <= X_i <= 1000000000


代码:

#include <stdio.h>
#include <math.h>
long long a[10010];
int main(int argc, char *argv[])
{
	long long sum1=0,sum2=0,l,c,x,y;
	int n,i,j;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	scanf("%d",&a[i]);
	for(i=0;i<n-1;i++)
	for(j=i+1;j<n;j++)
		if(i!=j){
			c=fabs(a[i]-a[j]);
			sum2+=c%10000000;
			l=sum2/10000000;
			sum2=sum2%10000000;
			sum1+=c/10000000+l;
		}
	x=sum2*2/10000000+sum1*2;
	y=2*sum2%10000000;		
	if(x) printf("%lld",x);
	if(x) printf("%07d\n",y);
	else printf("%lld\n",y);
	return 0;
}





线段长度