#include #define REP(i, n) for (int i = 0; (i) < (int)(n); ++ (i)) #define ALL(x) std::begin(x), std::end(x) using namespace std; template inline void chmax(T & a, U const & b) { a = max(a, b); } template istream & operator >> (istream & in, vector & xs) { REP (i, xs.size()) { in >> xs[i]; } return in; } template int64_t binsearch(int64_t l, int64_t r, UnaryPredicate p) { assert (l <= r); -- l; while (r - l > 1) { int64_t m = l + (r - l) / 2; (p(m) ? r : l) = m; } return r; } int64_t solve(int n, vector a) { sort(ALL(a)); vector acc(n + 1); partial_sum(ALL(a), acc.begin() + 1); int64_t ans = INT64_MIN; REP (i, n) { int k_max = min(i, n - i - 1); auto f = [&](int k) { return a[i] + (acc[i] - acc[i - k]) + (acc[n] - acc[n - k]) - (2 * k + 1) * a[i]; }; int k = binsearch(0, k_max, [&](int k) { return f(k + 1) - f(k) < 0; }); chmax(ans, f(k)); } return ans; } int main() { int n; cin >> n; vector a(n); cin >> a; cout << solve(n, a) << endl; return 0; }