思路:这道题分为两种情况偶数个商店或奇数个商店,若为偶数个,则建在所有商店的中间即可,若是奇数个就建在中间的商店里,样例中6 2 9 1,我们就可以排序之后选最中间,我们可以发现排完序之后是 1 2 6 9 ,我们只需要9-1+6-2=12 就可以得出答案,若是三个 1 2 6 ,那么只需要算6-1,所以代码实现上是一样的
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 100010;
long long d[N];
int main()
{
int n;
cin>>n;
long long ans=0;
for(int i=1;i<=n;++i)cin>>d[i];
sort(d+1,d+n+1);
int i,j;
for(i=1,j=n;i<j;++i,j--){
ans+=d[j]-d[i];
}
cout<<ans<<endl;
return 0;
}