Pancakes are normally served in stacks, but the Infinite House of Pancakes embraces change! The restaurant's new advertising hook is to serve the pancakes from a deque, or double-ended queue.
You are a server at the restaurant, and your job is to serve every pancake in the deque. Customers will arrive one at a time, and each one gets a single pancake. You must serve each customer either the leftmost or rightmost pancake in the deque; the choice is yours. When a pancake is served, it disappears from the deque, exposing the pancake that was next to it. Or, once there is only one pancake left, your only choice is to serve that one, and then your job is complete!
Each pancake has a deliciousness level. Because customers do not get to choose which pancakes they get, each customer only has to pay for their pancake if it is at least as delicious as each of the pancakes that all of the previous customers got. (The first customer always pays for their pancake since in that case there are no previous customers.)
How many customers will pay for their pancake, if you serve the pancakes in an order that maximizes that number?
Input Specification
The first line of the input gives the number of test cases, . test cases follow. Each test case is described with two lines. The first line of a test case contains a single integer , the number of pancakes in the pancake deque. The second line of a test case contains integers , where is the deliciousness level of the pancake from the left in the deque.
Output Specification
For each test case, output one line containing Case #x: y
, where is the test case number (starting from 1) and is the number of customers who pay for their pancakes, if you serve the pancakes in an order that maximizes that number.
Limits
Time limit: 20 seconds.
Memory limit: 1 GB.
.
, for all .
Test Set 1
.
Test Set 2
.
Test Set 3
.
Sample Input
4
2
1 5
4
1 4 2 3
5
10 10 10 10 10
4
7 1 3 1000000
Sample Output
Case #1: 2
Case #2: 3
Case #3: 5
Case #4: 2
In Sample Case #1, there are two possible orders in which you can serve the pancakes. If you serve the pancake with deliciousness level first, only that one is paid for. If you serve the pancake with deliciousness level first, both are paid for.
Sample Case #2 is the image shown in the problem statement. The following are the possible orders (by deliciousness level) in which the pancakes can be served. The underlined pancakes are the ones that customers pay for.
As you can see, there are some orders in which pancakes are paid for, and none in which all are.
In Sample Case #3, all pancakes are paid for regardless of the serving order.
In Sample Case #4, regardless of which pancake you serve first, the two in the middle will never be paid for. The best you can do is serve the pancake with deliciousness before the pancake with deliciousness .
Comments