풍수

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

요약
반지름이 정해진 원판 두 개를 볼록다각형 내부에 배치해서 두 원의 합집합 면적을 최대화하는 문제입니다.
난이도

어려움10점 중 8점

유형
기하, 이분 탐색, 수학
정답자
아직 제출이 없습니다

문제

풍수는 공간을 주변 환경과 조화를 이루도록 배치하는 고대 중국의 방법이다. George는 최근 풍수에 관심이 생겨 자신의 집에 적용하고 싶어 한다.

풍수의 한 원칙에 따르면 맨바닥은 기(氣)가 빠져나가기 때문에 생활 공간에 좋지 않다. 그래서 George는 똑같은 원형 카펫 두 장을 샀다(풍수에서는 직선과 날카로운 모서리를 피하라고 한다). 방은 볼록 다각형 모양이라 바닥 전체를 덮을 수는 없지만, 그는 두 카펫으로 바닥을 최대한 많이 덮고 싶어 한다.

각 카펫은 반지름이 rr인 원판이다. 카펫은 방 안에 완전히 들어가야 하며, 방의 경계선을 따라서라도 자르거나 접을 수 없다. 두 카펫은 서로 겹쳐도 된다. 두 카펫이 함께 덮는 바닥 넓이(두 원판의 합집합 넓이)가 최대가 되도록 배치했을 때, 그 최대 넓이를 구하여라.

입력

첫째 줄에 두 정수 nn과 rr이 주어진다. nn은 방의 꼭짓점 개수(3≤n≤1003 \le n \le 100), rr은 카펫의 반지름(1≤r≤10001 \le r \le 1000, 두 카펫의 반지름은 같다)이다.

다음 nn개의 줄에는 각각 두 정수 xix_i와 yiy_i가 주어지며, 이는 ii번째 꼭짓점의 좌표이다(−1000≤xi,yi≤1000-1000 \le x_i, y_i \le 1000). 모든 꼭짓점의 좌표는 서로 다르고, 이웃한 두 벽은 일직선이 아니며, 꼭짓점은 시계 방향으로 주어진다. 방은 볼록 다각형이며, 두 카펫을 방 안에 놓을 수 있음이 보장된다.

출력

두 카펫이 함께 덮을 수 있는 최대 넓이(두 원판의 합집합 넓이)를 소수점 아래 넷째 자리까지 정확히 반올림하여 한 줄에 출력한다.

힌트

예제4

  1. 예제 1

    입력
    5 2
    -2 0
    -5 3
    0 8
    7 3
    5 0
    
    예상 출력
    25.1327
    
  2. 예제 2

    입력
    4 3
    0 0
    0 8
    10 8
    10 0
    
    예상 출력
    52.3578
    
  3. 예제 3

    입력
    4 3
    0 0
    0 6
    6 6
    6 0
    
    예상 출력
    28.2743
    
  4. 예제 4

    입력
    4 2
    0 0
    0 6
    4 6
    4 0
    
    예상 출력
    20.2193