step1:对于x,每有一个y < x , 那么贡献就是x - y
那么x的所有贡献就是 v * x - sum(y) , 其中v是小于x的数的个数,sum(y)是所有小于x的数的和。
step2:考虑排序,然后sum(y)就是一个前缀和,v也可以通过数的下标快速得到。直接枚举每个数进行计算即可。
在一个奇妙的世界里,每个人都有一个欢乐值d。
在奇妙世界聚会的时候,每一个人都要和所有来参加聚会的其他人打招呼。而当两个人打招呼的时候,整个会场的气氛值会发生变化。
假设现在有两个人是小塔和小堡,小塔的欢乐值是dA,Bob的欢乐值是dB,且dA>dB。当小塔和小堡打招呼的时候,小塔会因为自己的欢乐值比小堡高而感到开心,从而使整个会场的气氛值提高dA;而小堡会因为自己的欢乐值比小塔低而感到沮丧,从而使整个会场的气氛值降低dB。
若两个欢乐值相等的人打招呼不会使会场的气氛值发生变化。请你计算在现在给你一场聚会的参赛人数n,以及他们每个人的欢乐值di,所有人打过招呼之后,整个会场的气氛值变化。
第一行一个正整数n,含义如题所示
接下来一行n个数字di,含义如题所示
1≤n≤2⋅105
0≤di<105
在一行中输出一个正整数代表气氛值的变化
输入
3
4 2 0
输出
8
说明
4与2打招呼,气氛值变化为+4−2
4与0打招呼,气氛值变化为+4−0
2与0打招呼,气氛值变化为+2−0
气氛值总计变化为8
输入
3
3 3 3
输出
0
说明
无论哪两个人打招呼都不会引起气氛值的变化
本题属于以下题库,请选择所需题库进行购买