¿La página no carga? Prueba haciendo clic aquí.
Placeholder

#10429

팬케이크 덱 20s 1024MB

Problemas

팬케이크는 보통 쌓아 올린 스택 형태로 제공되지만, 무한 팬케이크의 집(Infinite House of Pancakes)은 변화를 받아들인다! 이 식당의 새로운 홍보 포인트는 팬케이크를 덱(deque), 즉 양쪽 끝에서 꺼낼 수 있는 큐(double-ended queue)에서 제공하는 것이다.

당신은 이 식당의 서버이고, 당신의 일은 덱에 있는 모든 팬케이크를 손님들에게 서빙하는 것이다. 손님은 한 번에 한 명씩 도착하며, 각 손님은 팬케이크를 정확히 한 장 받는다. 당신은 각 손님에게 덱의 가장 왼쪽 또는 가장 오른쪽 팬케이크 중 하나를 서빙해야 하며, 선택은 당신에게 달려 있다. 팬케이크를 서빙하면 그 팬케이크는 덱에서 사라지고, 바로 옆에 있던 팬케이크가 새로 끝이 된다. 또는 팬케이크가 한 장만 남아 있다면 그 한 장을 서빙하는 수밖에 없고, 그렇게 하면 일이 끝난다!

Illustration of Sample #2.

각 팬케이크에는 맛있음 정도(deliciousness level)가 있다. 손님은 어떤 팬케이크를 받을지 선택할 수 없기 때문에, 각 손님은 자신이 받은 팬케이크가 이전의 모든 손님들이 받은 팬케이크들 각각의 맛있음 정도보다 작지 않을 때(즉 이전에 나온 모든 팬케이크의 맛있음 정도의 최댓값 이상일 때)에만 팬케이크 값을 지불한다. (첫 손님은 이전 손님이 없으므로 항상 지불한다.)

당신이 팬케이크를 서빙하는 순서를 최적으로 선택해, 값을 지불하는 손님 수를 최대화한다면 값을 지불하는 손님은 총 몇 명인가?


Entrada

입력의 첫 줄에는 테스트 케이스 수 \mathbf{T}가 주어진다. \mathbf{T}개의 테스트 케이스가 이어진다. 각 테스트 케이스는 2줄로 설명된다. 첫 줄에는 정수 \mathbf{N}이 주어지며, 이는 팬케이크 덱에 들어 있는 팬케이크의 개수이다. 둘째 줄에는 \mathbf{N}개의 정수 \mathbf{D_1}, \mathbf{D_2}, \dots, \mathbf{D_N}이 주어지며, \mathbf{D_i}는 덱의 왼쪽에서 i번째 팬케이크의 맛있음 정도이다.


Salida

각 테스트 케이스마다 Case #x: y 형식의 한 줄을 출력하라. 여기서 x는 (1부터 시작하는) 테스트 케이스 번호이고, y는 팬케이크를 서빙하는 순서를 최적으로 선택했을 때 값을 지불하는 손님의 수이다.


Ejemplo

4
2
1 5
4
1 4 2 3
5
10 10 10 10 10
4
7 1 3 1000000
Case #1: 2
Case #2: 3
Case #3: 5
Case #4: 2
샘플 케이스 #1에서는 팬케이크를 제공하는 순서가 두 가지 가능하다. 맛 점수 5인 팬케이크를 먼저 제공하면 그 하나만 결제된다. 맛 점수 1인 팬케이크를 먼저 제공하면 두 개 모두 결제된다. 샘플 케이스 #2는 문제 설명에 나온 그림이다. 팬케이크를 제공할 수 있는 가능한 순서는(맛 점수 기준) 다음과 같다. 밑줄이 있는 팬케이크가 결제되는 것들이다. \underline{1}, \underline{4}, 2, 3 \underline{1}, \underline{4}, 3, 2 \underline{1}, \underline{3}, \underline{4}, 2 \underline{1}, \underline{3}, 2, \underline{4} \underline{3}, 1, \underline{4}, 2 \underline{3}, 1, 2, \underline{4} \underline{3}, 2, 1, \underline{4} \underline{3}, 2, \underline{4}, 1 보다시피 3개의 팬케이크가 결제되는 순서는 있지만, 4개 모두가 결제되는 순서는 없다. 샘플 케이스 #3에서는 제공 순서와 무관하게 모든 팬케이크가 결제된다. 샘플 케이스 #4에서는 어떤 팬케이크를 먼저 제공하더라도 가운데 두 개는 결제되지 않는다. 최선은 맛 점수 7인 팬케이크를 맛 점수 1000000인 팬케이크보다 먼저 제공하는 것이다.

Fuente

GCJ 2022r1b A

Debes iniciar sesión para escribir código.