func_code_string: #include <bits/stdc++.h>   using namespace std;   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     int n;     int k;     cin >> n >> k;     int ar[n];     for (int i = 0; i < n; i++) {       cin >> ar[i];     }     sort(ar, ar + n);     long long lista[n];     int cantidad[n];     int index = 0;     for (int i = 0; i < n; i++) {       if (i == 0) {         lista[i] = ar[i];         cantidad[index] = 1;       } else if (ar[i] == ar[i - 1]) {         cantidad[index]++;       } else {         index++;         cantidad[index] = 1;         lista[index] = ar[i];       }     }     int diferentes = index + 1;     long long L[diferentes];     long long R[diferentes];     int LeftAmount[diferentes];     int RightAmount[diferentes];     L[0] = 0;     LeftAmount[0] = 0;     R[diferentes - 1] = 0;     RightAmount[diferentes - 1] = 0;     for (int i = 1; i < diferentes; i++) {       LeftAmount[i] = LeftAmount[i - 1] + cantidad[i - 1];       L[i] = L[i - 1] + (lista[i] - 1 - lista[i - 1]) * cantidad[i - 1];       L[i] += (lista[i] - 1 - (lista[i - 1] - 1)) * LeftAmount[i - 1];     }     for (int i = diferentes - 2; i >= 0; i--) {       RightAmount[i] = RightAmount[i + 1] + cantidad[i + 1];       R[i] = R[i + 1] + (lista[i + 1] - (lista[i] + 1)) * cantidad[i + 1];       R[i] += (lista[i + 1] - lista[i]) * RightAmount[i + 1];     }     long long ans = 1000000000000000005;     for (int i = 0; i < diferentes; i++) {       if (cantidad[i] >= k) {         ans = 0;       } else {         int needed = k - cantidad[i];         if ((LeftAmount[i] >= needed) && (RightAmount[i] >= needed)) {           ans = min(min(L[i], R[i]) + needed, ans);         } else if (LeftAmount[i] >= needed) {           ans = min(L[i] + needed, ans);         } else if (RightAmount[i] >= needed) {           ans = min(R[i] + needed, ans);         } else {           ans = min(L[i] + R[i] + needed, ans);         }       }     }     cout << ans;     return 0;   }   