#include<stdcpp.h> using namespace std; class Solution { public: int minOperationsMaxProfit(vector<int>& customers, int boardingCost, int runningCost) { if(boardingCost * 4 < runningCost) return -1; int waiting = 0; int profit = 0; int max_profit= -1; int wheel = 0; int ans = wheel; for(int i = 0 ; i < customers.size();i++){ waiting += customers[i]; if(waiting <= 4){ profit += waiting * boardingCost - runningCost; waiting = 0; }else{ profit += 4 * boardingCost - runningCost; waiting -= 4; } cout<<waiting<<' '<<profit<<endl; wheel++; if(max_profit < profit){ ans = wheel; max_profit = profit; } } profit += waiting / 4 * ( 4 * boardingCost - runningCost); wheel += waiting / 4; if(max_profit < profit){ ans = wheel; max_profit = profit; } cout<<wheel<<' '<<profit<<endl; profit += waiting % 4 * boardingCost - runningCost; wheel++; if(max_profit < profit){ ans = wheel; max_profit = profit; } cout<<wheel<<' '<<profit<<endl; // while(waiting){ // if(waiting <= 4){ // profit += waiting * boardingCost - runningCost; // waiting = 0; // }else{ // profit += 4 * boardingCost - runningCost; // waiting -= 4; // } // wheel++; // cout<<waiting<<' '<<profit<<endl; // if(max_profit < profit){ // ans = wheel; // max_profit = profit; // } // } if(max_profit <= 0 ) return -1; return ans; } }; int main(){ Solution sol; vector<int> customer_ex1 = {8,3}; int boardingCost = 5, runningCost = 6; cout<<sol.minOperationsMaxProfit(customer_ex1,boardingCost,runningCost)<<endl; vector<int> customer_ex2 = {10,9,6}; boardingCost = 6, runningCost = 4; cout<<sol.minOperationsMaxProfit(customer_ex2,boardingCost,runningCost)<<endl; vector<int> customer_ex3 = {3,4,0,5,1}; boardingCost = 1, runningCost = 92; cout<<sol.minOperationsMaxProfit(customer_ex3,boardingCost,runningCost)<<endl; vector<int> customer_ex4 = {2}; boardingCost = 2, runningCost = 4; cout<<sol.minOperationsMaxProfit(customer_ex4,boardingCost,runningCost)<<endl; return 0; }