탑 공격

면접 대비

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

요약
타워들이 사거리 내에서 에너지를 전달할 때마다 절반씩 손실되는 상황에서, 다중 소스 BFS로 적에게 줄 수 있는 최대 피해를 구하는 문제입니다.
난이도

보통10점 중 4점

유형
BFS, 그래프, 최단 경로, 수학
정답자
아직 제출이 없습니다

문제

도시에는 X-Y 좌표 평면 위에 N개의 방어 탑이 있다. 모든 탑은 처음에 D만큼의 에너지를 가지고, 모든 탑의 사정거리는 R이다. 적은 좌표 (X, Y)에 있다.

공격하기 전에 탑들은 에너지를 재분배할 수 있다. 서로 다른 두 탑 사이의 거리가 R 이하라면, 한 탑은 자신이 가진 에너지 중 원하는 양을 다른 탑으로 보낼 수 있다. 에너지를 보낼 때는 보낸 양의 절반이 사라진다. 어떤 탑이 에너지 10을 보내면, 보낸 탑은 에너지 10을 잃고 받는 탑은 에너지 5를 얻는다.

적과의 거리가 R 이하인 탑은 적을 공격할 수 있다. 탑이 공격할 때는 현재 가진 모든 에너지를 사용하며, 적이 받는 피해량은 사용한 에너지의 양과 같다. 여러 탑이 공격할 수 있다면 각 탑이 주는 피해가 모두 더해진다.

탑들이 에너지를 최적으로 이동한 뒤 적에게 줄 수 있는 최대 총피해량을 구하시오.

입력

첫째 줄에 탑의 개수 N, 사정거리 R, 각 탑의 초기 에너지 D, 적의 좌표 X, Y가 주어진다.

다음 N개의 줄에는 각 탑의 X좌표와 Y좌표가 한 줄에 하나씩 주어진다.

N은 50 이하인 자연수이다. R은 500 이하인 자연수, D는 100 이하인 자연수이다. 모든 좌표는 1000 이하인 음이 아닌 정수이다. 같은 위치에 있는 두 탑은 없고, 적과 같은 위치에 있는 탑도 없다.

출력

적이 받을 수 있는 최대 피해량을 출력한다. 절대 오차 또는 상대 오차가 10^-2 이하이면 정답으로 인정된다.

힌트

에너지 이동은 선형이다. 어떤 탑이 공격 가능한 가장 가까운 탑까지 k번의 이동이 필요하다면, 그 탑의 초기 에너지는 최대 D / 2^k만큼의 피해로 기여할 수 있다.

예제5

  1. 예제 1

    입력
    4 2 10 0 0
    2 0
    4 0
    6 0
    8 0
    
    예상 출력
    18.75
    
  2. 예제 2

    입력
    7 3 100 3 0
    5 1
    6 3
    5 5
    3 6
    1 5
    0 3
    1 1
    
    예상 출력
    362.5
    
  3. 예제 3

    입력
    9 1 4 0 2
    1 2
    2 2
    3 2
    4 2
    5 2
    3 0
    3 1
    3 3
    3 4
    
    예상 출력
    9.25
    
  4. 예제 4

    입력
    3 7 17 0 0
    0 5
    10 10
    5 0
    
    예상 출력
    34.0
    
  5. 예제 5

    입력
    4 1 100 10 10
    10 12
    12 10
    10 8
    8 10
    
    예상 출력
    0.0