AcWing 104.货舱选址(贪心)

AcWing 104.货舱选址

1.问题

在一条数轴上有N家商店,它们的坐标分别为A1~AN。

现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。

为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。

输入格式

第一行输入整数N。

第二行N个整数A1~AN。

输出格式

输出一个整数,表示距离之和的最小值。

数据范围

1≤N≤100000

输入样例:

4
6 2 9 1

输出样例:

12

2.解题思路

$6[YY4{Q0AC)KXLAZ4]~LA4.png

3.代码

#include 
#include 

using namespace std;

const int N = 100010;

int x[N];
int n;

int main()
{
    scanf("%d", &n);
    for (int i = 0; i < n; i ++)
        scanf("%d", &x[i]);
    sort(x, x + n);
    int c = x[n / 2];
    int  ans = 0;
    for (int i = 0; i < n; i ++)
        ans += abs(x[i] - c);
    printf("%d", ans);
    
    return 0;
}

你可能感兴趣的:(算法-数据结构,贪心算法,c++)