평활 창 (작은 데이터)

시간 제한5초메모리 제한512 MB

요약
슬라이딩 윈도우 합이 주어졌을 때 이를 만드는 정수 수열이 가질 수 있는 가장 작은 최댓값과 최솟값 차이를 구합니다.
난이도

보통10점 중 6점

유형
이분 탐색, 구간, 누적 합
정답자
아직 제출이 없습니다

문제

아다마는 기온을 연구하는 기후과학자다. 1분마다 현재 기온을 정수로 기록해서 긴 정수 목록 x1,x2,…,xNx_1, x_2, \dots, x_N을 만든다. 아다마는 섭씨나 켈빈 같은 익숙한 눈금 대신 자기만의 온도 눈금을 쓰기 때문에 값이 아주 크거나 음수일 수도 있다. 아다마는 이 기온을 컴퓨터 화면에 자주 그린다.

오늘 아침 아다마는 그래프를 더 매끄럽게 만들려고 이 목록의 이동 평균을 계산했다. 크기가 KK인 평활 창을 써서 NN개의 기온을 N−K+1N - K + 1개의 평균 기온 s1,s2,…,sN−K+1s_1, s_2, \dots, s_{N-K+1}로 바꿨다. 각 sis_i는 xi,xi+1,…,xi+K−1x_i, x_{i+1}, \dots, x_{i+K-1}의 평균이다. 원래 xix_i는 모두 정수였지만 sis_i 중에는 분수가 나올 수도 있다.

그런데 아다마는 원래 기온 수열을 저장해 두는 것을 잊었다. 지금 알고 싶은 값은 따로 있다. 가장 높은 기온과 가장 낮은 기온의 차이, 즉 max⁡{x1,…,xN}−min⁡{x1,…,xN}\max\{x_1, \dots, x_N\} - \min\{x_1, \dots, x_N\}이다. 손에 남은 것은 NN과 KK, 그리고 평활한 수열뿐이다.

같은 평활 수열을 만드는 원래 수열이 여럿일 수 있어서 이 차이가 하나로 정해지지 않는다. 그럴 때 아다마는 주어진 NN과 KK로 그 평활 수열을 만들어 내는 모든 정수 수열 가운데 차이가 가장 작은 값을 알고 싶어 한다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어서 테스트 케이스마다 두 줄이 주어진다. 첫 줄에는 정수 NN과 KK가 공백으로 구분되어 주어진다. 둘째 줄에는 정수 sum1,sum2,…,sumN−K+1\mathrm{sum}_1, \mathrm{sum}_2, \dots, \mathrm{sum}_{N-K+1}이 공백으로 구분되어 주어지고, si=sumi/Ks_i = \mathrm{sum}_i / K이다.

제한

  • 1≤T≤1001 \le T \le 100
  • 2≤K≤N2 \le K \le N
  • 2≤N≤1002 \le N \le 100
  • −10000≤sumi≤10000-10000 \le \mathrm{sum}_i \le 10000

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 가장 높은 기온과 가장 낮은 기온의 차이로 가능한 값 중 가장 작은 값이다.

힌트

예제의 첫 번째 케이스에서 평활 수열은 0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.50.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5이다. 차이가 가장 작은 정수 수열은 0,1,1,2,2,3,3,4,4,50, 1, 1, 2, 2, 3, 3, 4, 4, 5이다. 수열 0.5,0.5,1.5,1.5,2.5,2.5,3.5,3.5,4.5,4.50.5, 0.5, 1.5, 1.5, 2.5, 2.5, 3.5, 3.5, 4.5, 4.5도 같은 평활 수열을 만들고 차이는 4지만, 원래 기온이 정수라고 알려져 있으므로 답이 될 수 없다.

두 번째 케이스에서 알 수 있는 사실은 원래 값 100개의 합이 −100-100이라는 것뿐이다. 100개가 모두 정확히 −1-1일 수도 있고, 그러면 차이는 0이라서 더 작아질 수 없다.

세 번째 케이스의 원래 수열은 −4,8,−4,8,−4,8,−4-4, 8, -4, 8, -4, 8, -4였을 수 있다.

예제1

  1. 예제 1

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