아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

성간 무역

시간 제한2초메모리 제한128 MB

요약
직선 위 행성들 사이에 웜홀 양 끝을 배치하고 직접 이동과 웜홀 경유 중 짧은 거리로 잰 가장 큰 행성 간 거리를 최소화합니다.
난이도

보통10점 중 7점

유형
이분 탐색, 그리디, 정렬, 투 포인터
정답자
아직 제출이 없습니다

문제

Q가 자신의 알 수 없는 시험을 통과한 시스코 사령관에게 보기 드문 보상을 내렸다. 베이조 웜홀의 양쪽 끝을 원하는 곳으로 옮길 기회다. 물론 딥스페이스 나인도 웜홀을 따라 함께 움직인다. 사령관이 이전 계획을 공모하자, 여러 상인이 교역으로 잘 알려진 행성 사이의 이동 시간을 줄이려고 웜홀의 양 끝을 알려진 우주 안에 두기를 원했다. 이 행성 중 두 행성 사이 거리의 최댓값이 가장 작아지도록 웜홀의 두 끝을 놓는 방법을 찾아라.

문제에 등장하는 행성은 모두 하나의 직선 위에 있고, 웜홀이 없다면 두 행성 사이의 거리는 그냥 직선 거리다. 웜홀이 생기면 여행자는 한 행성에서 웜홀의 한쪽 끝까지 곧장 간 다음 반대쪽 끝에서 목적지 행성까지 곧장 가는 경로도 고를 수 있다. 웜홀의 두 끝 사이를 지나는 데는 시간이 걸리지 않으므로, 이때 이동 거리는 두 구간 거리의 합이다. 웜홀의 끝이 두 행성 사이에 놓여 있더라도 여행자는 웜홀을 쓰지 않고 그냥 갈 수 있다. 웜홀의 끝은 어떤 행성에든 원하는 만큼 가깝게 놓을 수 있어서, 그 행성에서 웜홀까지의 거리를 사실상 0으로 만들 수 있다.

입력

첫 줄에 테스트 케이스의 수 TT (1≤T≤501 \le T \le 50)가 주어진다.

각 테스트 케이스의 첫 줄에는 행성의 수 NN (2≤N≤40002 \le N \le 4000)이 주어진다. 이어지는 NN개의 줄에는 행성 ii의 위치 xix_i (−109≤xi≤109-10^9 \le x_i \le 10^9)가 한 줄에 하나씩 정수로 주어진다. 모든 행성은 x축 위의 점이고, 위치가 같은 두 행성은 없다.

출력

각 테스트 케이스마다 두 행성 사이 거리의 최댓값이 가장 작아지도록 웜홀을 놓았을 때의 그 최댓값을 한 줄에 출력한다. 이 값이 정수가 아니면 올림해서 출력한다.

행성의 위치는 정수로 주어지지만 웜홀 끝의 좌표는 정수가 아닐 수 있다.

예제1

  1. 예제 1

    입력
    3
    3
    -1
    1
    10
    2
    1000000000
    -1000000000
    5
    1
    2
    6
    7
    8
    
    예상 출력
    2
    0
    2