#include using namespace std; #include //using namespace atcoder; using ll = long long; using ull = unsigned long long; using i128 = __int128_t; using u128 = unsigned __int128_t; using mint = atcoder::static_modint<998244353>; const int mod = 998244353; #include mt19937_64 rng(std::chrono::steady_clock::now().time_since_epoch().count()); int dx[8] = {-1, 1, 0, 0, -1, -1, 1, 1}; int dy[8] = {0, 0, -1, 1, -1, 1, -1, 1}; template bool chmin(T& a, const T& b){ if (b < a){ a = b; return true; } else { return false; } } template bool chmax(T& a, const T& b){ if (a < b){ a = b; return true; } else { return false; } } void solve(){ int n; cin >> n; vector a(n); for (int i = 0; i < n; i++){ cin >> a[i]; } sort(a.begin(), a.end()); vector dp(n + 1); for (int i = 0; i < n; i++){ dp[i + 1] = dp[i] + a[i]; } ll ans = 0; for (int i = 0; i < n; i++){ int now = a[i]; int l = 0, r = n + 1; while(r - l > 1){ int mid = (r + l) / 2; int x = i - mid, y = n - mid; if (x < 0 || y <= i){ r = mid; continue; } if (a[x] + a[y] >= 2 * now){ l = mid; } else { r = mid; } } chmax(ans, dp[i + 1] - dp[i - l] + dp[n] - dp[n - l] - 1LL * (2 * l + 1) * now); } cout << ans << '\n'; }; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int t = 1; while(t--){ cout << fixed << setprecision(15); solve(); } }