描述 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;
}
原文地址:http://blog.csdn.net/wangjia_to_dream/article/details/24824025