#include <iostream>
#include <algorithm>
using namespace std;
const int N = 100010;
int a[N], sum[N];
int main()
{
int n; cin >> n;
for(int i = 1; i <= n; i ++ ) cin >> a[i];
sort(a + 1, a + n + 1);
for(int i = 1; i <= n; i ++ )
sum[i] = sum[i - 1] + a[i];
int res = 2e9;
for(int i = 1; i <= n; i ++ )
res = min(res, i * a[i] - sum[i] + sum[n] - sum[i] - (n - i) * a[i]);
cout << res << endl;
return 0;
}
求结果的时候改成这样或许更好理解
long long x;
if(i>n-i)x=a[i];
else x=a[i+1];
ans=min(ans,xi-s[i]+s[n]-s[i]-x(n-i));
对对对 我也是这个思路 直接暴力枚举 O(Ai) Ai不超过4e4
我是铸币 应该是0到n都枚举
怎么想到的