fork(2) download
  1. #include <vector>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. bool canWeDoIt(vector<int> &available, vector<int> &required) {
  7. vector<int> copy = available;
  8.  
  9. for(int i=0;i<available.size();i++) {
  10. if(available[i] >= required[i]) {
  11. available[i] -= required[i];
  12. }
  13. else {
  14. available = copy;
  15. return false;
  16. }
  17. }
  18. return true;
  19. }
  20.  
  21. int main()
  22. {
  23. vector<int> available, requiredP, requiredK;
  24. int ingredientsCount, ingredientsAmount, requiredPAmount, requiredKAmount, result = 0;
  25.  
  26. cin >> ingredientsCount;
  27. while(ingredientsCount--) {
  28. cin >> ingredientsAmount;
  29. available.push_back(ingredientsAmount);
  30. }
  31.  
  32. for(int i=0;i<available.size();i++) {
  33. cin >> requiredPAmount;
  34. requiredP.push_back(requiredPAmount);
  35. }
  36.  
  37. for(int i=0;i<available.size();i++) {
  38. cin >> requiredKAmount;
  39. requiredK.push_back(requiredKAmount);
  40. }
  41.  
  42. while(canWeDoIt(available,requiredP))
  43. result++;
  44.  
  45. while(canWeDoIt(available,requiredK))
  46. result++;
  47.  
  48. cout << result << '\n';
  49.  
  50. return 0;
  51. }
Success #stdin #stdout 0s 2992KB
stdin
3
5 4 8
2 1 3
1 2 2
stdout
3