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