Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int32_t main() {
- int n = 0, i = 0, j = 1, k = 1, ans = 0, flag = 1;
- int del = 0;
- int s = 0, m = 0;
- cin >> n;
- const int c = 2;
- vector<vector<int>> dp(n + 5, vector<int>(c));
- vector<int> d(n);
- fori(n) {
- cin >> d[i];
- }
- sort(d.begin(), d.end());
- dp[1][0] = d[max(0, 1)] - d[min(0, 1)];
- dp[1][1] = -1;
- for (i = 2; i < n; i++) {
- dp[i][0] = 100000000;
- if (dp[i - 1][0] != -1)
- dp[i][0] = min(dp[i][0], d[max(i, i - 1)] - d[min(i, i - 1)] + dp[i - 1][0]);
- if(dp[i-1][1] != -1)
- dp[i][0] = min(dp[i][0], d[max(i, i - 1)] - d[min(i, i - 1)] + dp[i - 1][1]);
- dp[i][1] = dp[i - 1][0];
- }
- cout << dp[n - 1][0] << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment