n=int(input()) y=list(map(int,input().split())) y.sort() """ 次iを処理する遷移 ・i->i+1 => i+2 ・i->i+1, i+2->i+1 => i+3 """ inf=float('inf') dp=[inf]*(n+1) # dp[i+1]:y[i]まで処理済みのときの最小値 dp[0]=0 for i in range(n-1): # y[i]をy[i+1]に寄せる dp[i+2]=min(dp[i+2],dp[i]+y[i+1]-y[i]) # y[i]とy[i+2]をy[i+1]い寄せる if i+3<=n: dp[i+3]=min(dp[i+3],dp[i]+y[i+2]-y[i]) print(dp[-1])