51nod 1096 距离之和最小【中位数】
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题
收藏
关注
X轴上有N个点,求X轴上一点使它到这N个点的距离之和最小,输出这个最小的距离之和。
Input
第1行:点的数量N。(2 <= N <= 10000) 第2 - N + 1行:点的位置。(-10^9 <= P[i] <= 10^9)
Output
输出最小距离之和
Input示例
5 -1 -3 0 7 9
Output示例
20
【分析】:注意LL,距离abs
【代码】:
#include <bits/stdc++.h> using namespace std; #define LL long long int main() { LL n,ans=0; LL a[10000+10]; cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; } sort(a,a+n); for(int i=0;i<n;i++) { ans+=abs(a[i]-a[n/2]); } cout<<ans<<endl; return 0; }