51nod 1096 距离之和最小

来源:互联网 发布:软件行业能力资质 编辑:程序博客网 时间:2024/06/11 04:32

把点从小到大排序,如果是奇数个点,中间那个点就是要求那点,偶数个点,中间俩点之间的区间都可以是要求的那点。假设有n个点,n为偶数。(1,n),(2,n-1)…(n/2,n/2+1),这n/2线段的长度和就是结果了。

#include <bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 10010;LL poss[MAXN];int main(){    int N;    cin >> N;;    for(int i = 0; i < N; ++i)        cin >> poss[i];    sort(poss,poss+N);    LL res = 0;    for(int i = 0; i < N/2; ++i)        res += abs(poss[N-i-1] - poss[i]);    cout << res << endl;}
原创粉丝点击