def chmax(DP,i,v): if DP[i] < v: DP[i] = v def chmin(DP,i,v): if DP[i] > v: DP[i] = v def main(): INF = 1e18 N = int(input()) Y = list(map(int, input().split())) Y.sort() # 2個グループ作るか 3個グループ作るか dp = [INF]*(N + 1) dp[0] = 0 for i in range(N): # 切れ目iにいる val = dp[i] for j in [2, 3]: dsti = i + j if dsti > N: continue #if j == 2: # chmin(dp, dsti, val + (Y[i + 1] - Y[i])) #else: # chmin(dp, dsti, val + (Y[i + 2] - Y[i])) chmin(dp, dsti, val + (Y[i + j - 1] - Y[i])) print(dp[-1]) if __name__ == "__main__": main()