필지 경계 말뚝

시간 제한20초메모리 제한1024 MB

요약
고도 수열을 연속 구간으로 최대한 나누되 모든 구간이 중간 값이 양쪽 값보다 크거나 작은 세 점을 포함하도록 합니다.
난이도

보통10점 중 6점

유형
그리디, 배열
정답자
아직 제출이 없습니다

문제

동서로 길게 뻗은 땅을 샀다. 이 땅의 길이는 KK 킬로미터이고 폭이 아주 좁아서, 서쪽 끝에서 동쪽 끝으로 이어지며 높이만 변하는 꺾은선으로 본다. 서쪽 끝에서 각각 0,1,…,K0, 1, \dots, K km 떨어진 K+1K+1개의 측정점 M0,M1,…,MKM_0, M_1, \dots, M_K에서 땅의 높이를 미터 단위로 알고 있다.

이 지역에서는 나무 말뚝이 이웃한 두 필지의 경계를 나타낸다. 말뚝은 측정점에만 세울 수 있고, 한 측정점에는 말뚝을 하나까지만 세울 수 있다. 지금 말뚝은 두 개다. 하나는 0 km 지점에, 다른 하나는 KK km 지점에 있다. 말뚝이 선 측정점은 그 말뚝이 갈라놓는 두 필지에 모두 속한다고 본다. 그래서 내 땅에는 0 km부터 KK km까지의 모든 측정점이 들어간다.

어떤 필지 안에 측정점 세 개가 있고, 그중 가장 서쪽 것과 가장 동쪽 것이 모두 나머지 하나보다 높거나 모두 나머지 하나보다 낮으면, 그 필지를 좋은 필지라고 한다. 사람들은 땅의 높낮이가 조금은 변하는 쪽을 좋아한다. 이 세 측정점이 서로 이웃해야 하는 것은 아니고, 그중 가장 서쪽 것과 가장 동쪽 것이 필지의 양 끝일 필요도 없다.

K=5K = 5이고 M0,M1,…,MKM_0, M_1, \dots, M_K가 5, 6, 6, 1, 2, 4인 경우를 보자. 높이가 5, 2, 4인 측정점 세 개는 조건을 만족하고, 높이가 6, 1, 2인 세 개도 조건을 만족한다. 반면 높이가 6, 6, 1인 세 개는 조건을 만족하지 않고, 높이가 1, 2, 4인 세 개도 만족하지 않는다. 조건을 만족하는 측정점 세 개가 하나라도 있으면 그 필지 전체가 좋은 필지다. 예를 들어 측정점의 높이가 4, 7, 6, 7인 필지는 앞의 세 값 때문에 좋은 필지다.

내 땅은 이미 좋은 필지지만, 여기서 값을 더 끌어낼 수 있을 것 같다. 말뚝을 더 세워 이 땅을 여러 필지로 나누려고 한다. 땅을 한 조각도 버리고 싶지 않으니 나뉜 필지는 모두 좋은 필지여야 한다. 말뚝을 최대 몇 개까지 더 세울 수 있는가?

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫째 줄에는 땅의 길이 KK가 킬로미터 단위의 정수로 주어진다. 둘째 줄에는 K+1K+1개의 정수 M0,M1,…,MKM_0, M_1, \dots, M_K가 공백으로 구분되어 주어진다. MiM_i는 서쪽 끝에서 ii km 떨어진 측정점의 높이이고, 단위는 미터다.

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 더 세울 수 있는 말뚝의 최대 개수다.

제한

  • 1≤T≤1001 \le T \le 100
  • 2≤K≤1052 \le K \le 10^5
  • 모든 테스트 케이스의 KK를 더한 값은 10510^5 이하다.
  • 모든 ii에 대해 0≤Mi≤10000 \le M_i \le 1000
  • 어떤 i<j<ki < j < k에 대해 (Mi−Mj)×(Mk−Mj)>0(M_i - M_j) \times (M_k - M_j) > 0이다. 즉 처음 산 땅은 좋은 필지다.

설명

예제의 첫째 테스트 케이스에서는 2 km 지점에 말뚝 하나를 세워 좋은 필지 두 개를 만들 수 있다. 0 km에서 2 km까지의 필지는 4<84 < 8이고 8>78 > 7이므로 좋은 필지다. 2 km에서 4 km까지의 필지는 7>37 > 3이고 3<53 < 5이므로 좋은 필지다.

둘째 테스트 케이스에서는 말뚝을 더 세울 방법이 없다. 1 km나 3 km에 세우면 한쪽 필지에 측정점이 두 개만 들어가서 좋은 필지가 될 수 없다. 2 km에 세우면 0 km에서 2 km까지는 좋은 필지가 되지만 2 km에서 4 km까지는 좋은 필지가 아니다.

셋째 테스트 케이스에서는 3 km와 5 km에 말뚝을 세울 수 있다.

넷째 테스트 케이스에서는 2 km에 말뚝을 세울 수 있다. 2 km에서 6 km까지의 필지는 10>910 > 9이고 9<129 < 12이므로 좋은 필지다. 그러나 말뚝을 두 개 세울 방법은 없다.

예제1

  1. 예제 1

    입력
    4
    4
    4 8 7 3 5
    4
    4 8 7 7 5
    7
    1 2 2 1 2 1 2 1
    6
    2 1 3 10 9 12 20
    
    예상 출력
    Case #1: 1
    Case #2: 0
    Case #3: 2
    Case #4: 1