#include "bits/stdc++.h" // Custom Header <<< #define ALL(x) x.begin(), x.end() #define rep(i, s, n) for(int i(s); i < int(n); ++i) #define endl '\n' #ifndef YDK #define eprintf(...) #endif using namespace std; using i64 = long long; using pii = pair; templateinline bool chmax(A &a, const B &b){return b>a ? a=b,1 : 0;} templateinline bool chmin(A &a, const B &b){return b>> signed main() { int N; int a[100010]; cin >> N; rep(i, 0, N) cin >> a[i]; sort(a, a+N); i64 dp[100010]; dp[0] = LINF; dp[1] = a[1] - a[0]; if (2 < N) dp[2] = a[2] - a[0]; for (int i = 3; i < N; ++i) { dp[i] = min( dp[i-2] + (a[i] - a[i-1]), dp[i-3] + (a[i] - a[i-2])); } cout << (dp[N-1]) << endl; return 0; } /* vim:set foldmethod=marker foldmarker=<<<,>>> : */