描述 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