swustojCalculate Sum-Of-Absolute-Differences(0237)

来源:互联网 发布:淘宝宝贝违规记录没了 编辑:程序博客网 时间:2024/06/03 13:38
给你N个正整数,求两两之差的绝对值之和。 
比如有4个数分别为 3,2,6,5,则答案为 
|3-2| + |3-6| + |3-5| + |2-6| + |2-5| + |6-5| =14
Description
测试有很多组,对于每一组测试: 
第一行为一个正整数 N( 2<= N <=20000)。 
第二行有N正个整数,每个数不大于 1000000。
Input
每组测试输出一行。测试数据保证结果在int范围内。
Output
1
2
3
4
5
4
3 2 6 5
3
1 2 3
Sample Input
1
2
3
14
4

#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include<stack>#include<iostream>#include<string.h>#include<math.h>using namespace std;int main(){int n;int a[20005];while (cin >> n){int sum = 0;for (int i = 0; i < n; i++){scanf("%d", &a[i]);}sort(a, a + n);for (int i = 0; i < n-1; i++){sum += abs(a[i] - a[i + 1])*(n - 1 - i)*(i + 1);}cout << sum << endl;}return 0;}


0 0