问题 N: 线段长度

时间限制: 1 Sec  内存限制: 128 MB

题目描述

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

输入

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

输出

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

样例输入

5
1
5
3
2
4

样例输出

40

提示

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

参考答案

#include
using namespace std;
long long a[10010];
int main() {
	long long n, ans;
	cin >> n;
	for(int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	sort(a + 1, a + n + 1);
	for(int i = 1; i < n; i++) {
		ans += (a[i+1] - a[i]) * i * (n-i);
	}
	cout << ans * 2;
	return 0;
}

你可能感兴趣的:(c++,算法)