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

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

풀 뜯는 염소

시간 제한5초메모리 제한512 MB

요약
각 후보 물통 위치마다 밧줄 길이를 말뚝과의 거리로 정하고 모든 원의 공통 면적을 계산합니다.
난이도

어려움10점 중 8점

유형
기하
정답자
아직 제출이 없습니다

문제

농부 존이 목장에 풀을 뜯을 염소 NN마리를 들였다. 염소 ii는 위치 PiP_i에 박은 말뚝에 길이 LiL_i의 줄로 묶인다. 즉 이 염소는 점 PiP_i에서 거리 LiL_i 이내라면 어디로든 갈 수 있고, 그 밖으로는 나가지 못한다. 목장은 넓고 평평하니 무한히 넓은 2차원 평면으로 생각하면 된다.

말뚝 위치는 지난 무리를 치던 때 정해 둔 것을 그대로 쓰고, 줄 길이만 새로 정해야 한다. 정하기 까다로운 조건이 두 가지 있다.

  • 염소 전체가 물통 하나에 닿아야 한다. 물통을 어디에 놓을지는 아직 정하지 않았다. 후보는 Q1,Q2,…,QMQ_1, Q_2, \dots, Q_M으로 좁혔지만, 그중 어느 자리를 쓸지는 모른다.
  • 염소는 성질이 고약해서 한데 모이면 요란하게 싸운다. 모두의 평온을 위해 존은 염소 전체가 닿을 수 있는 영역의 면적 AA를 최소로 만들고 싶다.

존은 기하에 약한 탓에 이 계산만은 도움이 필요하다.

물통 위치 QjQ_j마다, 물통이 그 자리에 있을 때 염소 전체가 닿을 수 있는 영역의 면적 AjA_j가 최소가 되도록 줄 길이를 정하고, 그 면적 AjA_j를 구하라.

그림

아래 그림에서 파란 점 네 개는 말뚝 위치 P1,P2,P3,P4P_1, P_2, P_3, P_4이고, 빨간 점 두 개는 물통 후보 Q1,Q2Q_1, Q_2다. 색칠한 두 영역의 면적이 각각 A1A_1과 A2A_2다.

말뚝 네 개와 물통 후보 두 개, 그리고 두 최소 영역

입력

첫 줄에 테스트 케이스 수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 줄에는 정수 NN과 MM이 주어진다.

다음 NN개의 줄에는 말뚝 위치 P1,P2,…,PNP_1, P_2, \dots, P_N이 한 줄에 하나씩 주어지고, 그 뒤 MM개의 줄에는 물통 후보 Q1,Q2,…,QMQ_1, Q_2, \dots, Q_M이 한 줄에 하나씩 주어진다.

이 N+MN + M개의 줄은 각각 해당 위치의 xx 좌표와 yy 좌표를 공백 하나로 구분해 담고 있다.

제한

  • 모든 좌표는 −1 000-1\,000 이상 1 0001\,000 이하의 정수다.
  • 한 테스트 케이스의 P1,…,PN,Q1,…,QMP_1, \dots, P_N, Q_1, \dots, Q_M은 모두 서로 다르고, 그중 어느 세 점도 한 직선 위에 있지 않다.
  • 1≤T≤51 \le T \le 5
  • 2≤N≤1 0002 \le N \le 1\,000
  • 1≤M≤1001 \le M \le 100

출력

각 테스트 케이스마다 Case #x: A1 A2 ... AM 형식으로 한 줄을 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, A1A_1부터 AMA_M까지는 공백 하나로 구분한다.

각 면적은 소수점 아래 세 자리로 반올림해 출력한다. 최소 면적이 0이면 0.000을 출력한다.

예제3

  1. 예제 1

    입력
    2
    4 2
    0 0
    100 100
    300 0
    380 90
    400 100
    1000 5
    3 1
    0 0
    10 10
    20 0
    10 5
    
    예상 출력
    Case #1: 1518.906 1193932.969
    Case #2: 0.000
    
  2. 예제 2

    입력
    1
    2 1
    -3 0
    3 0
    0 4
    
    예상 출력
    Case #1: 22.365
    
  3. 예제 3

    입력
    1
    3 5
    -200 -100
    200 -100
    10 240
    7 3
    -31 11
    500 300
    -450 -260
    13 -999
    
    예상 출력
    Case #1: 0.000 0.000 398581.775 267800.699 1934137.317