fork(1) download
  1. #include<bits/stdc++.h>
  2. #define loop(i,a,b) for(int i=a;i<b;i++)
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. int n,k,temp;
  9.  
  10. vector<int> v,p;
  11.  
  12. cin>>n>>k;
  13.  
  14. int ct[n];
  15. bool flag[n];
  16.  
  17. loop(i,0,n)
  18. {
  19. cin>>temp;
  20. v.push_back(temp);
  21. ct[i] = 0;
  22. flag[i] = true;
  23. }
  24.  
  25. int max_index = 0;
  26.  
  27. while(true)
  28. {
  29. if(p.size()==n)
  30. {
  31. break;
  32. }
  33.  
  34. else
  35. {
  36.  
  37. max_index = 0;
  38.  
  39. loop(i,0,n)
  40. {
  41. if(flag[i] && v[i]>v[max_index])
  42. {
  43. max_index = i;
  44. }
  45. }
  46.  
  47. if(flag[max_index] && (v[max_index]<k || ct[max_index]>=3))
  48. {
  49. flag[max_index] = false;
  50. //v.erase(v.begin() + max_index);
  51. p.push_back(v[max_index]);
  52. }
  53.  
  54. else
  55. {
  56. ct[max_index]++;
  57. v[max_index] -= k;
  58. }
  59.  
  60. }
  61. }
  62.  
  63. int sum = 0;
  64.  
  65. loop(i,0,n)
  66. {
  67. sum += p[i];
  68. }
  69.  
  70. cout<<sum;
  71.  
  72. return 0;
  73. }
  74.  
Success #stdin #stdout 0s 3476KB
stdin
3 3
15 8 10
stdout
9