fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. bool fun(int mid, vector<int>arr,int m){
  4. vector<int>a(arr.size(),-1);
  5. for(int i=0;i<arr.size();i++){
  6. a[i]=(i+1)*mid+arr[i];
  7. }
  8. sort(a.begin(),a.end());
  9. int sum=0;
  10. for(int i=0;i<mid;i++){
  11. sum+=a[i];
  12. }
  13. if(sum<=m)return true;
  14. return false;
  15. }
  16. int main()
  17. {
  18. vector<int>arr={4, 3, 2, 1};
  19. sort(arr.begin(),arr.end());
  20. int n=arr.size();
  21. int max_score=33;
  22. int ans=0;
  23. int l=1;
  24. int h=n;
  25.  
  26. while(l<=h){
  27. int mid=l+(h-l)/2;
  28. //cout<<"mid"<<mid<<endl;
  29. if(fun(mid,arr,max_score)){
  30. ans=mid;
  31. l=mid+1;
  32. }
  33. else{
  34. h=mid-1;
  35. }
  36. //cout<<"ans"<<ans<<endl;
  37. }
  38. cout<<ans<<endl;
  39. return 0;
  40. }
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
3