描述
在河边有N户人家,他们每天都需要到河边去打水,后来政府拔款给大家修建一个水库。每户人家到水库的最短距离为沿河方向的距离差,问如何选择水库的位置,使所有人到水库的距离和最短?
输入描述
第一行一个数字N,表示有N户人。
接下来一行有N个数字d,表示每户人家在河流方向上的坐标。
输出描述
输出最短的距离和,一行一个结果。
用例输入 1
2 1 3
用例输出 1
2
用例输入 2
1 3
用例输出 2
0
提示
1<=N<=100000,0<=d<=2∗109。
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n;
cin>>n;
long long li[n]={0};
for (long long i=0;i<n;i++) cin>>li[i];
sort(li,li+n);
long long l=0,r=n-1;
long long s=0;
while (r>l)
{
s+=li[r]-li[l];
r--;
l++;
}
cout<<s;
}
2149

被折叠的 条评论
为什么被折叠?



