本文主要是介绍swustojCalculate Sum-Of-Absolute-Differences(0237),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给你N个正整数,求两两之差的绝对值之和。
比如有4个数分别为 3,2,6,5,则答案为
|3-2| + |3-6| + |3-5| + |2-6| + |2-5| + |6-5| =14
比如有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。
第一行为一个正整数 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;
}
这篇关于swustojCalculate Sum-Of-Absolute-Differences(0237)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!