Problem Description
小沃沃所在的世界是一个二维平面。他有 n 个朋友,第 i 个朋友距离他的距离为 a[i],小沃沃并不知道这些朋友具体在什么点上。
请问在最优情况下,小沃沃的朋友两两之间的欧几里得距离的和的最小值是几?
假设小沃沃的位置为 P0=(x0,y0),第 i 个朋友的位置为 Pi=(xi,yi),对于所有的 i,需要满足 dist(P0,Pi)=a[i],并且∑n−1i=1∑nj=i+1dist(Pi,Pj) 最小,其中 dist(X,Y) 为连接点 X 和点 Y 的线段的长度。xi,yi 都可以是任意实数。
Input
第一行一个正整数 test(1≤test≤10) 表示数据组数。
对于每组数据,第一行一个正整数 n(1≤n≤100000)。
接下来一行 n 个整数,第 i 个整数 ai 表示第 i 个朋友和小沃沃的距离。
Output
对每组数据输出一行一个数,表示 ∑n−1i=1∑nj=i+1dist(Pi,Pj) 的最小值。答案需要四舍五入到整数。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll T;
scanf("%lld",&T);
while(T--)
{
ll m;
scanf("%lld",&m);
ll st[m+5];
for(ll i=0;i<m;i++)
{
scanf("%lld",&st[i]);
}
sort(st,st+m);
long long sum=0;
ll a[m]={ 0};
for(ll i=0;i<m-1;i++)
{
a[i]=st[i+1]-st[i];
}
for(ll i=0;i<m-1;i++)
{
sum+=a[i]*((m-i-1))*(i+1);
}
printf("%lld\n",sum);
}
}