Prompt: You are a bookstore owner and you are given two arrays, customer and grumpy. Each value in the customer array represents the number of customers that are coming into your store within the ith minute where i is the index of the customer array. Don’t worry about how long the customers are staying as they are only allowed to stay for 1 minute before they need to leave. The grumpy array contains 1 or 0 and they represent when you are grumpy or not, respectively. When you are grumpy, you can not serve all the customers coming into your store in that minute.

Fortunately, you have a technique that allows you to not be grumpy for a certain number of consecutive minutes and you can only use this once. Given the certain number of minutes, k, return the maximum number of customers that you can serve.

Example:

Input: customers = [1,0,1,2,1,1,7,5], grumpy = [0,1,0,1,0,1,0,1], minutes = 3
Output: 16
Explanation: The bookstore owner keeps themselves not grumpy for the last 3 minutes. 
The maximum number of customers that can be satisfied = 1 + 1 + 1 + 1 + 7 + 5 = 16.

Solution: We can solve this with a sliding window approach. The condition for the sliding window is that it should be a window of length k and it should have the maximum number of customers that can be served when the store owner is grumpy. At the end, we can return the maximum number of customers that can be served while grumpy plus the number of customers that can be served while not grumpy. The runtime for the sliding window solution is O(n).