int s[n][n]; // 決策點
ll w[n][n], f[n][n];
ll s[n];
int a[n];
int n, m;
// f[i][j] 表示前 i 個村莊建 j 個郵局最小花費
// w[i][j] 表示第 i 個村莊和第 j 個村莊間建 1 個郵局的最少花費
// s[i][j] 表示前 i 個村莊建 j 個郵局最小花費與建 j - 1 個郵局的決策點
// a <= b <= c <= d
// w[a][b] + w[c][d] <= w[a][d] + w[b][c] 滿足四邊形不等式, 即滿足決策點 s 單調
// 區間單調 : a <= b <= c <= d
// s[b][c] <= s[a][d]
// s[i][j - 1] <= s[i][j] <= s[i + 1][j]
int main()
for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
sort(a + 1, a + n + 1);
for(int i = 1; i <= n; i++) s[i] = s[i - 1] + a[i];
for(int i = 1; i <= n; i++)
}for(int i = 1; i <= n; i++) s[i][1] = 1;
for(int i = 1; i <= n; i++) f[i][1] = w[1][i];
for(int j = 2; j <= m; j++) }}
}printf("%lld", f[n][m]);
return
0;}