您的位置:首页 > 其它

计蒜客 难题题库 220 线段的总长

2015-08-11 09:15 204 查看
22次
22.7%
1000ms
65536K

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

输入格式:
第一行,一个整数N,表示点数。 接下来N行,每行一个整数X_i,表示点的坐标。
输出格式:
输出为一个整数,表示线段的总长。
N < = 10000 , 0 < = X_i < = 1000000000

样例1

输入:
5
1
5
3
2
4


输出:
40


#include<iostream>
#include<algorithm>
using namespace std;

const int maxn = 10001;
long long a[maxn];

int main(){
long long n, i;
cin >> n;
for(i = 0; i < n; ++i){
cin >> a[i];
}
sort(a, a + n);
long long res = 0;
for(i = 1; i < n; ++i){
res += (a[i] - a[i - 1]) * i * (n - i);
}
cout << res * 2 << endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: