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

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

상어와 함께 수영하기

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

요약
w×h 격자에서 (1,1)에서 출발해 t번 이동하거나 머물며 매 시각 상어까지의 유클리드 거리 최솟값을 최대화하는 경로를 찾고, 그 값을 소수 둘째 자리까지 출력한다.
난이도

보통10점 중 6점

유형
동적 계획법, 이분 탐색, BFS, 수학
정답자
아직 제출이 없습니다

문제

라호야(La Jolla)의 한 해변에는 부두 바로 옆에 표범상어가 꽤 많이 산다. 이 상어들은 몸길이가 약 4피트로 대부분의 상어보다 훨씬 작다. 어떤 사람들은 이 상어들과 함께 물속에서 헤엄치는 것을 아주 짜릿한 경험으로 여긴다. 하지만 대회 운영진은 이것이 그리 좋은 생각이 아니며, 만약 표범상어 무리와 함께 물속에 있게 된다면 최우선 목표는 상어들로부터 최대한 멀리 떨어져 있는 것이라는 데 모두 동의한다. 다행히 (방수만 된다면) 컴퓨터가 바로 그 일을 도와줄 수 있다.

물을 정수 좌표로 이루어진 w×hw \times h 크기의 2차원 격자로 나타낸다. 시각 11에 당신은 점 (1,1)(1, 1)에서 출발한다. 매 시간 단계마다 당신은 상하좌우 중 한 칸으로 헤엄쳐 이동하거나 제자리에 머무를 수 있으며, 어느 경우에도 격자 밖으로 나갈 수는 없다. 여러 시각에서의 상어 위치와 고려할 시간 구간 tt가 주어진다. 당신은 tt개의 시간 단계 동안 모든 상어로부터 최대한 멀리 떨어져 있도록 이동 계획을 세워야 한다.

더 정확히 말하면, 각 시간 단계에서 그 시각에 존재하는 상어까지의 거리 중 가장 가까운 값을 생각하고, 이 값들을 tt개의 시간 단계 전체에 대해 모은 최솟값(상어에게 가장 가까이 다가간 거리)을 dd라 하자. 두 점 (x1,y1)(x_1, y_1)과 (x2,y2)(x_2, y_2) 사이의 거리는 유클리드 거리 d=(x1−x2)2+(y1−y2)2d = \sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}로 측정한다. 목표는 시각 tt에 다시 위치 (1,1)(1, 1)로 돌아오면서 dd를 최대한 크게 만드는 이동 계획을 찾는 것이다.

입력

첫 번째 줄에는 입력에 포함된 데이터 세트의 개수 K≥1K \ge 1이 주어진다. 그 뒤로 다음 형식의 데이터 세트 KK개가 이어진다.

각 데이터 세트의 첫 번째 줄에는 네 정수 ww, hh, tt, ss가 주어진다. 1≤w,h≤101 \le w, h \le 10은 고려하는 물 영역의 너비와 높이, 1≤t≤1001 \le t \le 100은 당신이 물속에 있는 시간 단계의 수, 1≤s≤100001 \le s \le 10000은 상어 목격 횟수이다.

그 뒤로 ss개의 줄이 이어지며, 각 줄에는 세 정수 xix_i, yiy_i, tit_i (1≤xi≤w1 \le x_i \le w, 1≤yi≤h1 \le y_i \le h, 1≤ti≤t1 \le t_i \le t)가 주어진다. 이는 시각 tit_i에 위치 (xi,yi)(x_i, y_i)에 상어가 있다는 뜻이다. 이 목격 정보들은 어떤 기준으로도 정렬되어 있지 않다.

출력

각 데이터 세트에 대해, 먼저 "Data Set x:"를 한 줄에 출력한다. 여기서 xx는 그 데이터 세트의 번호이다(11부터 시작). 그다음, 가능한 최선의 이동 계획에서 상어에게 가장 가까이 다가간 거리를 소수점 아래 둘째 자리까지 반올림하여 출력한다. (출력이 0.000.00이면 어느 시점엔가 상어와 같은 칸을 차지하는 것을 피할 수 없다는 뜻이다.)

예제3

  1. 예제 1

    입력
    2
    2 2 2 2
    1 1 2
    2 2 1
    3 3 5 5
    2 2 1
    1 2 2
    1 1 3
    1 3 3
    3 1 3
    
    예상 출력
    Data Set 1:
    0.00
    Data Set 2:
    1.41
    
  2. 예제 2

    입력
    1
    1 1 1 1
    1 1 1
    
    예상 출력
    Data Set 1:
    0.00
    
  3. 예제 3

    입력
    1
    5 5 1 1
    3 3 1
    
    예상 출력
    Data Set 1:
    2.83