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

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

Pulse Nova

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

요약
반지름이 R인 원을 평면의 적절한 위치에 놓아, 주어진 직선들이 원 안에 만드는 선분 길이의 합을 최대로 구합니다.
난이도

어려움10점 중 8점

유형
기하, 완전 탐색
정답자
아직 제출이 없습니다

문제

Mr.Panda는 타워 디펜스 게임 Watcher of Samsara를 하고 있다. 게임을 시작할 때 모든 플레이어는 게임 시스템이 무작위로 생성한 영웅 풀에서 첫 번째 영웅을 자유롭게 고를 수 있다. Mr.Panda는 항상 Leshrac을 고르는데, 이 캐릭터의 궁극기 Pulse Nova 때문이다.

Pulse Nova는 Leshrac 주변에 1초에 한 번씩 피해 에너지의 파동을 내보내, 근처의 모든 적 유닛에게 피해를 준다. 이 스킬을 보고 Mr.Panda는 기하 문제를 떠올렸다.

2차원 평면 위에 nn개의 직선이 있다. ii번째 직선은 정수 좌표인 두 점 PiP_i, QiQ_i를 지난다. 평면 위에 반지름이 정확히 RR인 원을 하나 놓아야 한다. 주어진 각 직선에 대해, 그 직선의 일부 선분이 원 안에 들어갈 수 있다. 원 안에 들어가는 모든 선분의 길이 합이 최대가 되도록 원의 위치를 구하라.

입력

첫 줄에는 테스트 케이스의 개수 TT (1≤T≤1001 \le T \le 100)가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 직선의 개수 nn (1≤n≤501 \le n \le 50)과 원의 반지름 RR (1≤R≤30001 \le R \le 3000)이 정수로 주어진다.

이후 nn개의 줄에 각각 정수 네 개가 주어진다. ii번째 줄의 처음 두 정수는 점 PiP_i의 좌표이고, 나머지 두 정수는 점 QiQ_i의 좌표이다. Pi≠QiP_i \ne Q_i이고, 모든 좌표의 절댓값은 1000 이하이다.

모든 테스트 케이스의 nn을 합하면 100 이하이다.

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄을 출력한다. 여기서 xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 원 안에 들어가는 길이의 최대 합이다. 절대 오차 또는 상대 오차가 10−610^{-6} 이내이면 정답으로 인정한다.

힌트

첫 번째 예시에서 원의 중심을 (1,1)(1, 1)에 두면 원 안에 들어가는 길이의 합은 8이 된다.

두 번째 예시에서 원의 중심을 (0,1)(0, 1)에 두면 원 안에 들어가는 길이의 합은 12+8212 + 8\sqrt{2}가 된다.

예제1

  1. 예제 1

    입력
    3
    2 2
    1 1 1 2
    1 1 2 1
    4 3
    0 0 0 1
    2 0 0 1
    0 0 1 0
    0 2 1 2
    5 4
    1 3 -2 3
    0 0 4 0
    0 1 -1 2
    -3 1 2 -1
    1 3 2 -3
    
    예상 출력
    Case #1: 8.0000000000
    Case #2: 23.3137084990
    Case #3: 38.0402955628