페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#10449

조명 최적화 10s 2048MB

문제

온야오말레는 고속도로를 따라 설치된 가로등의 전구를 백열전구에서 더 에너지 효율적이고 밝은 LED 전구로 교체하는 프로젝트를 이끌고 있다. 그녀는 모든 오래된 백열전구를 이미 제거했으며, 이제 새 LED 전구를 설치하는 데 집중하고 있다. 새 전구가 더 밝기 때문에, 온야오말레는 일부 가로등이 필요 없을 수도 있고 이를 사용하지 않으면 에너지를 더 절약할 수 있다고 생각한다.

우리는 고속도로를 서쪽에서 동쪽으로 뻗은 길이 \mathbf{M}미터의 직선으로 모델링한다. x-번째 미터는 고속도로의 서쪽 끝에서 동쪽으로 x미터 떨어진 점이다. 만약 가로등이 x-번째 미터에 있고, 조명 반경이 \mathbf{R}미터인 전구를 설치하면, 그 가로등은 고속도로의 \max(0, x - \mathbf{R})-번째 미터에서 \min(\mathbf{M}, x + \mathbf{R})-번째 미터까지(양 끝 포함) 구간을 비춘다. 온야오말레는 고속도로의 모든 점이 적어도 하나의 전구에 의해 비춰지도록 전구를 설치해야 한다. 이는 고속도로 양 끝점에서 정수 미터 거리가 아닌 점들도 포함한다는 것에 유의하라. 전구가 설치되지 않은 가로등은 아무것도 비추지 않는다.

고속도로의 길이(미터) \mathbf{M}, 새 전구의 조명 반경(미터) \mathbf{R}, 그리고 모든 가로등의 위치가 주어졌을 때, 고속도로 전체를 비추기 위해 온야오말레가 설치해야 하는 전구의 최소 개수를 구하라. 불가능하다면 그 사실을 보고하라.


입력

입력의 첫 줄에는 테스트 케이스 개수 \mathbf{T}가 주어진다. 이어서 \mathbf{T}개의 테스트 케이스가 주어진다. 각 테스트 케이스는 두 줄로 이루어진다. 첫 줄에는 세 정수 \mathbf{M}, \mathbf{R}, \mathbf{N}이 주어지며, 각각 고속도로의 길이(미터), 전구의 조명 반경(미터), 가로등의 개수를 의미한다. 각 테스트 케이스의 둘째 줄에는 가로등이 위치한 미터를 나타내는 \mathbf{N}개의 정수 \mathbf{X_1}, \mathbf{X_2}, \dots, \mathbf{X_N}가 오름차순으로 주어진다.


출력

각 테스트 케이스마다 한 줄을 출력하라. 형식은 Case #x: y이며, 여기서 x는 테스트 케이스 번호(1부터 시작)이고, y는 (가능한 경우) 고속도로 전체를 비추기 위해 설치해야 하는 전구의 최소 개수이다. 현재 가로등만으로 고속도로 전체를 비출 방법이 없다면, y는 대신 IMPOSSIBLE이어야 한다.


예제

3
10 3 3
2 7 9
10 2 3
2 7 9
10 2 4
2 3 7 9
Case #1: 2
Case #2: IMPOSSIBLE
Case #3: 4
샘플 케이스 #1에서는 가장 서쪽과 가운데 가로등에만 전구를 설치하고, 가장 동쪽 것은 비워도 고속도로 전체를 비출 수 있다. 이 두 가로등이 [0, 5]와 [4, 10]을 비추므로 전체 구간([0, 10])이 조명된다. 샘플 케이스 #2에서는 샘플 케이스 #1과 같은 배치이지만 전구가 더 약하다. 이 경우에는 고속도로 전체를 비출 방법이 없다. 특히 모든 가로등에 전구를 설치해도 4m와 5m 사이의 중간 지점이 여전히 밝지 않다. 샘플 케이스 #3에서는 샘플 케이스 #2에 비해 3m 지점에 가로등이 하나 더 있지만 나머지 조건은 같다. 이 경우 모든 가로등에 전구를 설치하는 것이 전체를 밝힐 수 있는 유일한 방법이다.

출처

GCJ 2023a B

로그인해야 코드를 작성할 수 있어요.