提交时间:2023-12-17 14:27:39

运行 ID: 222940

#include <iostream> #include <algorithm> #include <cmath> #define int long long using namespace std; int n, cnt; int a[100005]; signed main() { cin >> n; for (int i = 1; i <= n; i++) cin >> a[i], cnt += a[i]; sort(a + 1, a + n + 1); int zs_cnt(n - bool(cnt % n)); if (zs_cnt == n) { int ans(0), jizhun(cnt / n); for (int i = 1; i <= n; i++) ans += abs(a[i] - jizhun); cout << (ans >> 1); } else { int ans(cnt), now(cnt); for (int i = 1; i <= n; i++) { //int ll(i - 2 >= 0 ? a[i - 2] : 0); now = now - (a[i] - a[i - 1]) * (n - i + 1) + (a[i] - a[i - 1]) * (i - 1); int modify(max(abs(a[i] - a[1]), abs(a[i] - a[n]))); ans = min(ans, now - modify); //cout << now - modify << ' '; } cout << ans; } }