fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. const int N = 1e5 + 999;
  5. const int MOD = 998244353;
  6. int32_t main() {
  7. ios_base::sync_with_stdio(false);
  8. cin.tie(NULL);
  9. int t=1;
  10. cin>>t;
  11. while(t--){
  12. int n,k;
  13. cin>>n>>k;
  14. int arr[n];
  15. int ans=0;
  16. vector<int> v;
  17. for(int i=0;i<n;i++){
  18. cin>>arr[i];
  19. if(arr[i] > k) v.push_back(arr[i]);
  20. else ans+= arr[i];
  21. }
  22.  
  23.  
  24.  
  25. if(v.size() == 1){
  26. ans += v[0];
  27. cout<<ans<<endl;
  28. continue;
  29. }
  30. int p = v.size()-2;
  31. sort(v.begin(),v.end());
  32. for(int i=0;i<v.size();i++){
  33. v[i] = v[i]-k;
  34. }
  35. for(int i=0;i<v.size();i++){
  36. if(v[i] && i!=p){
  37. int l = min(v[i],v[p]);
  38. v[p] -= l;
  39. v[i] -= l;
  40. while(v[p]==0 && p<n) p++;
  41. if(v[i]>0) i--;
  42. }
  43. if(i == p) p++;
  44. }
  45. for(int i=0;i<v.size();i++){
  46. if(v[i] >= 0) ans += v[i] +k;
  47. }
  48. cout<<ans<<endl;
  49.  
  50.  
  51. }
  52. return 0;
  53. }
Success #stdin #stdout 0s 4164KB
stdin
3
2 1
1 2
2 1
2 2
3 1
2 3 2
stdout
3
4
5