fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const long int MaxN=1e9+7;
  5.  
  6. int main() {
  7. long int N,D,P;
  8. cin>>N>>D>>P;
  9. vector<long int> vec;
  10. long int K;
  11. for(int i=0;i<N;i++){
  12. cin >> K;
  13. vec.push_back(K);
  14. }
  15. sort(vec.begin(),vec.end());
  16. long int T=1;
  17. long int total=0;
  18. while(T==1){
  19. long int num=0;
  20. //cout << vec.size();
  21. int temp=vec.size()-1;
  22. for(int i=temp;i>=temp-D+1 && i>=0;i--){
  23. num+=vec[i];
  24. //cout << vec[i] << ' ';
  25. }
  26. //cout << '\n';
  27. //cout << num << '\n';
  28. if(num>P){
  29.  
  30. for(int i=0;i<D && i<temp+1;i++){
  31. vec.pop_back();
  32. // cout << i << ' ';
  33. }//cout << '\n';
  34. total+=P;
  35. }else{
  36. T=0;
  37. }
  38. }
  39. int X=vec.size();
  40. //cout << vec.size() << ' '<<vec[0];
  41. if(X>0){
  42. for(int i=0;i<vec.size();i++){
  43. total+=vec[i];
  44. }
  45. }
  46. cout << total << '\n';
  47.  
  48. }
Success #stdin #stdout 0.01s 5288KB
stdin
5 2 10
7 1 6 3 6
stdout
20