本文共 662 字,大约阅读时间需要 2 分钟。
题意:给你n个数求n个数任意一个数与其他数之差的绝对值之和的和
题解:例如;
6
1 2 5 7 8 9
先排序
正向:
1 --->9 8
1 --->2----->9 8
1 --->5----->9 8
1 --->7----->9 8
1 --->8----->9 8
2 --->8 6
2 --->5----->8 6
2 --->7----->8 6
5--->7 2
sum = 8 * 5 + 6 * 3 + 2 * 1;
逆向同上述方法
sum的值相同;
#include#include #include using namespace std;typedef long long LL;LL a[10005];int main(){ LL n,i,j; while(~scanf("%lld",&n)) { for(i = 0;i < n;i++) scanf("%lld",&a[i]); sort(a,a+n); i = 0;j = n - 1; LL sum = 0; while(i < j) { sum += (a[j] - a[i]) *(j - i); i++,j--; } printf("%lld\n",2*sum); }}
转载地址:http://afsgi.baihongyu.com/