1599 simple math
This commit is contained in:
		
							
								
								
									
										77
									
								
								1599-240101-pass/main.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								1599-240101-pass/main.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,77 @@ | ||||
| #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; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user