fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7. long long n, budget;
  8. cin >> n;
  9. cin >> budget;
  10.  
  11. vector<long long> comp(n), stock(n), cost(n);
  12. for(long long i = 0; i < n; i++) cin >> comp[i];
  13. for(long long i = 0; i < n; i++) cin >> stock[i];
  14. for(long long i = 0; i < n; i++) cin >> cost[i];
  15.  
  16. long long units = 0;
  17. long long low = 0, high = 2e12;
  18.  
  19. while(low <= high){
  20. long long mid = (low + high) / 2;
  21. long long sum = 0;
  22.  
  23.  
  24. for(long long j = 0; j < n; j++){
  25. long long required = comp[j] * mid;
  26. long long need = required - stock[j];
  27. if(need < 0)
  28. need = 0;
  29. sum += need * cost[j];
  30. }
  31.  
  32. if(sum <= budget){
  33. units = mid;
  34. low = mid + 1;
  35. } else {
  36. high = mid - 1;
  37. }
  38. }
  39.  
  40. cout << units << "\n";
  41. return 0;
  42. }
Success #stdin #stdout 0s 5316KB
stdin
1
10
2
5
3
stdout
4