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

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

사회적 거리 두기

면접 대비

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

요약
직사각형 안의 점들이 주어질 때, 한쪽 끝에서 다른 쪽 끝까지 걸어가며 모든 점에서 유지할 수 있는 최대 거리를 구한다.
난이도

보통10점 중 7점

유형
기하, 유니온 파인드, 이분 탐색, 그래프
정답자
아직 제출이 없습니다

문제

코로나19의 확산을 막기 위해 사람들은 감염 가능성이 있는 다른 사람과 거리를 두도록 요청받는다. 어떤 전문가는 2미터를, 어떤 전문가는 6피트를, 또 어떤 전문가는 1.5미터를 권장한다. 붐비는 환경에서는 이런 권장 거리를 지키기 어려울 수 있다. 어떤 환경이든 거리를 최대화하면 감염 위험이 최소화된다.

다른 사람들이 서 있는 붐비는 복도를 걸어 지나가야 한다. 복도의 한쪽 끝에서 다른 쪽 끝까지 이동하면서 다른 모든 사람과 유지할 수 있는 최대 거리를 구하라. (자신과 다른 모든 사람은 넓이가 0인 점으로 가정한다.)

입력

첫째 줄에 복도의 길이와 너비, 복도에 서 있는 사람 수를 나타내는 세 정수 L, W, N이 공백으로 구분되어 주어진다. (0 < L, W ≤ 100, 1 ≤ N ≤ 100) 이 정수는 각각 0 이상 100 이하이다. 다음 N개의 줄에는 각 사람의 위치 좌표를 나타내는 두 정수 X, Y가 주어진다. (0 ≤ X ≤ L, 0 ≤ Y ≤ W)

출력

복도의 길이 방향으로 이동하면서 다른 어떤 사람과도 유지할 수 있는 최대 거리를 한 개의 수로 출력한다. 절대 오차 또는 상대 오차가 10−4 이내이면 정답으로 인정된다.

예제2

  1. 예제 1

    입력
    100 100 1
    50 50
    
    예상 출력
    50.00000000000000
    
  2. 예제 2

    입력
    100 2 2
    49 0
    51 2
    
    예상 출력
    1.41421356237310