#include #include #include #include #include #define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define FOR(i,m,n) for(int i=(m);i<(n);++i) #define REP(i,n) FOR(i,0,n) #define ALL(v) (v).begin(),(v).end() const int INF = 0x3f3f3f3f; const long long LINF = 0x3f3f3f3f3f3f3f3fLL; const double EPS = 1e-8; const int MOD = 1000000007; // 998244353; const int dy[] = {1, 0, -1, 0}, dx[] = {0, -1, 0, 1}; /*-------------------------------------------------*/ int main() { cin.tie(0); ios::sync_with_stdio(false); // freopen("input.txt", "r", stdin); int n; cin >> n; vector y(n); REP(i, n) cin >> y[i]; sort(ALL(y)); vector > dp(n, vector(3)); dp[0][0] = 0; dp[0][1] = dp[0][2] = LINF; FOR(i, 1, n - 1) { dp[i][0] = min(dp[i-1][1], dp[i-1][2]); dp[i][1] = y[i] - y[i-1] + min(dp[i-1][0], dp[i-1][2]); dp[i][2] = y[i] - y[i-1] + dp[i-1][0]; } dp[n-1][1] = y[n-1] - y[n-2] + min(dp[n-2][0], dp[n-2][2]); dp[n-1][2] = y[n-1] - y[n-2] + dp[n-2][0]; cout << min(dp[n-1][1], dp[n-1][2]) << '\n'; return 0; }