【51Nod】1096 距离之和最小

xiaoxiao2021-02-28  127

题意

X轴上有N(2 <= N <= 10000)个点,求X轴上一点使它到这N个点的距离之和最小,输出这个最小的距离之和。

解题思路

要使得距离之和最小,那么就是取最中间的那个数作为中心点。

参考代码

#include <iostream> #include <algorithm> using namespace std; #define MAXN 10000+5 typedef long long ll; int a[MAXN]; int main(){ int n,x,y,tmp; while (cin>>n){ for (int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); int k=a[n/2]; ll ans=0; for (int i=0;i<n;i++) ans+=abs(k-a[i]); cout<<ans<<endl; } return 0; }
转载请注明原文地址: https://www.6miu.com/read-25842.html

最新回复(0)