만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

드러머 (라지)

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

요약
증가하는 순서로 주어진 타격 시각에 맞는 시작 시각과 일정한 박자 간격을 정해 최대 편차를 가장 작게 만듭니다.
난이도

보통10점 중 7점

유형
이분 탐색, 기하, 수학
정답자
아직 제출이 없습니다

문제

드러머는 밴드에서 박자를 지키는 일을 맡는다. 박자가 흔들리면 연주 전체가 무너진다.

당신은 인기 록 밴드의 보컬이고, 지금 곤란한 상황에 놓였다. 드러머가 프로 게이머가 되겠다며 밴드를 떠났다. 새 드러머를 당장 구해야 한다. 다행히 지원자는 넘친다. 이 중에서 박자를 가장 일정하게 유지하는 사람을 찾아야 한다.

오디션은 지원자 한 명씩 따로 진행한다. 지원자는 북 하나를 스틱으로 여러 번 두드린다. 완벽한 박자라면 연속한 두 타격의 시간 간격이 모두 같고, 타격 시각은 등차수열 T0, T0+K, T0+2K, …, T0+(N−1)KT_0,\ T_0 + K,\ T_0 + 2K,\ \dots,\ T_0 + (N-1)K 를 이룬다.

사람이 완벽한 박자를 내기는 사실상 불가능하다. 그래서 지원자의 연주는 어떤 완벽한 박자를 기준으로 각 타격 시각이 최대 EE 만큼 어긋난다. 더 정확히 말하면, 실수 aa 와 실수 K≥0K \ge 0 을 골라 완벽한 박자를 Si=a+iKS_i = a + iK 로 두었을 때 그 박자에 대한 오차는

E=max⁡0≤i<N∣Ti−Si∣E = \max_{0 \le i < N} |T_i - S_i|

이다. 지원자의 타격 시각 T0,T1,…,TN−1T_0, T_1, \dots, T_{N-1} 이 주어질 때, aa 와 KK 를 자유롭게 고를 수 있다고 하고 오차 EE 의 최솟값을 구하라.

입력

첫 줄에 테스트 케이스의 수 TT 가 주어진다. 이어서 TT 개의 테스트 케이스가 주어지고, 각각은 지원자 한 명의 오디션을 나타내며 두 줄로 이루어진다. 첫 줄에는 타격 횟수 NN 이 주어진다. 둘째 줄에는 지원자가 북을 두드린 시각 NN 개가 밀리초 단위 정수로 공백을 사이에 두고 주어진다. 시각은 오름차순으로 주어진다.

제한

  • 1≤T≤1001 \le T \le 100
  • 2≤N≤50 0002 \le N \le 50\,000
  • 0≤Ti≤1060 \le T_i \le 10^6
  • Ti≤Ti+1T_i \le T_{i+1} (같은 시각이 연달아 나올 수 있다)

출력

각 테스트 케이스마다 Case #x: E 형식으로 한 줄을 출력한다. xx 는 1부터 시작하는 테스트 케이스 번호이고, EE 는 그 지원자가 낼 수 있는 오차의 최솟값이다.

최솟값 EE 는 항상 유리수이다. EE 를 기약분수 p/q 꼴로 출력한다. pp 는 0 이상의 정수, qq 는 2 이상의 정수이고 두 수는 서로소여야 한다. 분모가 1이면 분수 대신 정수 pp 만 출력한다. 예를 들어 오차의 최솟값이 3/43/4 이면 3/4 를, 22 이면 2 를 출력한다.

예제3

  1. 예제 1

    입력
    3
    2
    10 70
    4
    0 10 19 30
    6
    2 5 10 15 20 24
    
    예상 출력
    Case #1: 0
    Case #2: 1/2
    Case #3: 3/4
    
  2. 예제 2

    입력
    2
    2
    0 1000000
    5
    7 7 7 7 7
    
    예상 출력
    Case #1: 0
    Case #2: 0
    
  3. 예제 3

    입력
    2
    4
    0 0 1 4
    7
    5 8 12 21 25 29 30
    
    예상 출력
    Case #1: 5/6
    Case #2: 9/4