Advertisement
Guest User

bonecas

a guest
Sep 30th, 2023
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define all(x) x.begin(),x.end()
  4. #define pb push_back
  5. #define fr first
  6. #define sc second
  7. #define mp make_pair
  8. #define int long long
  9.  
  10. const int maxn = 1e4+10;
  11. const int maxk = 3e3+10;
  12. const int inf = 1e18+10;
  13.  
  14. int n, k, a[maxn], dp[maxn][maxk];
  15.  
  16.  
  17.  
  18. void solve() {
  19.  
  20.     cin >> n >> k;
  21.     for(int i = 1; i <= n; i++) cin >> a[i];
  22.  
  23.     sort(a+1,a+1+n,greater<int>());
  24.  
  25.     dp[1][0] = 0;
  26.     for(int j = 1; j <= k; j++) dp[1][j] = inf;
  27.     for(int i = 2; i <= n; i++) {
  28.         for(int j = 0; j <= k; j++) {
  29.             if(3*j > i) dp[i][j] = inf;
  30.             else {
  31.                 dp[i][j] = min(dp[i-1][j],dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]));
  32.             }
  33.         }
  34.     }
  35.  
  36.     cout << dp[n][k] << endl;
  37.  
  38. }
  39.  
  40. int32_t main() {
  41.     ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
  42.     //freopen("in.in","r",stdin);
  43.  
  44.     solve();
  45. }
  46.  
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement