其他分享
首页 > 其他分享> > 修井

修井

作者:互联网

修井

Input
第一行输出住户数N,其中2≤N≤10000; 第2~N+1行共N个数,表示住户位置Ai,其中-109≤Ai≤109

Output
输出一个数,表示这个最短距离

Sample Input
5
-1
-3
0
7
9
Sample Output
20

分析: 如果是奇数个住户,井修在最中间路程最短,如果是偶数个选取中间两点的平均数即可。

#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <math.h>
using namespace std;
int main()
{
    int n,i;
    long long int x,sum=0;
    long long int a[10001];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%I64d",&a[i]);
    }
    sort(a,a+n);
    if(n%2!=0)
    {
        x=a[n/2];
    }
    else
    {
       x=(a[n/2]+a[n/2-1])/2;

    }
    for(i=0;i<n;i++)
        sum+=abs(a[i]-x);
    printf("%I64d\n",sum);
    return 0;
}
酷毙少男 发布了47 篇原创文章 · 获赞 0 · 访问量 1332 私信 关注

标签:int,long,109,住户,include,修井
来源: https://blog.csdn.net/weixin_43614026/article/details/104578150