# 1599. Maximum Profit of Operating a Centennial Wheel

• Time: $O(\Sigma |\texttt{customers[i]}| / 4)$
• Space: $O(1)$
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 class Solution { public: int minOperationsMaxProfit(vector& customers, int boardingCost, int runningCost) { int waiting = 0; int profit = 0; int maxProfit = 0; int rotate = 0; int maxRotate = -1; int i = 0; while (waiting > 0 || i < customers.size()) { if (i < customers.size()) waiting += customers[i++]; // Onboard new customers const int newOnboard = min(waiting, 4); waiting -= newOnboard; profit += newOnboard * boardingCost - runningCost; ++rotate; if (profit > maxProfit) { maxProfit = profit; maxRotate = rotate; } } return maxRotate; } }; 
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 class Solution { public int minOperationsMaxProfit(int[] customers, int boardingCost, int runningCost) { int waiting = 0; int profit = 0; int maxProfit = 0; int rotate = 0; int maxRotate = -1; int i = 0; while (waiting > 0 || i < customers.length) { if (i < customers.length) waiting += customers[i++]; // Onboard new customers final int newOnboard = Math.min(waiting, 4); waiting -= newOnboard; profit += newOnboard * boardingCost - runningCost; ++rotate; if (profit > maxProfit) { maxProfit = profit; maxRotate = rotate; } } return maxRotate; } }