思路:如果是奇数数个商店,排序后选中间的那个为货仓位置。如果是偶数个,排序后选取 n / 2或者 n / 2 + 1位置的商店。
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int main() { int n; cin>>n; int a[N]; for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n); int cnt=0; for(int i=0;i<n;i++) { cnt+=abs(a[i]-a[n/2]); } cout<<cnt<<endl; }