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

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

인디아나 존스는 도착할 수 있을까?

면접 대비

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

요약
축에 나란한 벽 조각들이 주어질 때, 첫 번째 벽에서 두 번째 벽까지 가는 경로에서 건너야 하는 모든 틈이 그 길이 이하가 되도록 하는 최소 널빤지 길이를 구한다.
난이도

보통10점 중 6점

유형
그래프, 유니온 파인드, 최소 신장 트리, 기하
정답자
아직 제출이 없습니다

문제

인디아나 존스가 전쟁으로 폐허가 된 무인 도시에 있다. 모든 집의 지붕은 무너졌고 벽의 일부만 남아 있다. 땅에는 지뢰가 가득해서, 도시를 안전하게 이동하는 유일한 방법은 남아 있는 벽 위를 걷는 것뿐이다. 그의 임무는 도시에 갇힌 사람을 구하는 것이다.

서로 연결되어 있지 않은 두 벽 사이를 이동하기 위해, 인디아나 존스는 나무판자를 가지고 다니면서 두 벽 사이에 걸쳐 놓고 건너가기로 했다. 판자는 두 벽 사이의 가장 가까운 지점에 걸칠 수 있으므로, 한 벽에서 다른 벽으로 건너가려면 판자의 길이가 두 벽 조각 사이의 최소 거리 이상이어야 한다. 인디아나 존스는 판자를 하나만 가지고 다니므로, 그 길이는 이동 경로에서 만나는 가장 큰 틈을 건널 수 있을 만큼 길어야 한다.

도시 지도

그림 1: 인디아나 존스가 사용한 경로가 표시된 도시 지도

인디아나 존스와 갇힌 사람의 처음 위치는 모두 어떤 벽 조각 위에 있다. 또한 모든 벽은 남북(South-North) 방향 또는 동서(West-East) 방향이다.

도시에 남아 있는 벽들의 지도가 주어진다. 인디아나 존스가 갇힌 사람에게 도달하기 위해 가지고 다녀야 하는 나무판자의 최소 길이를 구하여라. 즉, 시작 벽에서 목표 벽까지 벽들을 건너가는 모든 경로 중에서, 그 경로에서 건너야 하는 틈의 최댓값이 가장 작아지는 경로를 찾고, 그때의 최댓값을 출력하면 된다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다.

각 테스트 케이스의 첫 줄에는 도시에 남아 있는 벽 조각의 수 NN이 주어진다 (2≤N≤10002 \le N \le 1000). 이어지는 NN개의 줄에는 각 벽 조각의 정보가 주어진다. 처음 등장하는 벽 조각은 인디아나 존스가 서 있는 벽이고, 두 번째로 등장하는 벽 조각은 갇힌 사람이 서 있는 벽이다.

각 벽 조각은 세 정수 XX, YY, LL로 표현된다 (−10000≤X,Y,L≤10000-10000 \le X, Y, L \le 10000). 점 (X,Y)(X, Y)는 남북 방향 벽의 경우 가장 남쪽 끝점, 동서 방향 벽의 경우 가장 서쪽 끝점이다. LL은 벽의 길이와 방향을 결정한다.

  • L≥0L \ge 0이면 동서 방향 벽이며 길이는 LL이다. 즉 (X,Y)(X, Y)에서 (X+L,Y)(X+L, Y)까지이다.
  • L<0L < 0이면 남북 방향 벽이며 길이는 ∣L∣|L|이다. 즉 (X,Y)(X, Y)에서 (X,Y+∣L∣)(X, Y+|L|)까지이다.

N=0N = 0이면 입력이 끝난다.

출력

각 테스트 케이스마다 인디아나 존스가 가지고 다녀야 하는 나무판자의 길이를 한 줄에 하나씩 출력한다.

길이는 소수점 아래 둘째 자리까지의 실수로 출력하며, 마지막 자리는 반올림한다. 입력에는 반올림 결과가 달라질 만큼 경계에 가까운 값이 주어지지 않는다.

예제3

  1. 예제 1

    입력
    14
    1 1 5
    6 8 2
    7 2 -2
    5 3 3
    2 5 2
    2 3 2
    2 3 -2
    4 3 -2
    0 7 1
    1 8 2
    3 6 -2
    4 7 2
    6 6 1
    6 6 -2
    3
    -10 0 20
    -5 1 10
    50 50 100
    0
    
    예상 출력
    1.41
    1.00
    
  2. 예제 2

    입력
    2
    0 0 5
    5 0 3
    0
    
    예상 출력
    0.00
    
  3. 예제 3

    입력
    2
    0 0 4
    0 3 4
    0
    
    예상 출력
    3.00