녹색 에너지
시간 제한1초메모리 제한128 MB
주어진 높이의 탑들을 다각형 지형 위에 배치하고 지형과 다른 탑의 그림자를 고려해 햇빛을 받는 총 길이를 최대화합니다.
문제
플랫랜드는 올해 새로운 방식의 태양광 발전소를 짓는다. 태양 전지판을 땅에 깔지 않고, 높은 타워의 측면에 아래에서 위까지 붙이는 방식이다.
세울 타워는 개이고 이미 사 두었다. 번째 타워의 높이는 다. 기술자들은 발전량의 합이 가장 커지도록 타워를 세울 지점을 고르려고 한다.
발전소 부지의 지형은 꼭짓점이 개인 폴리라인으로 주어진다. 꼭짓점의 좌표는 이고 이다. 타워는 이 지형 위의 한 점에 수직으로 세우며, 세우는 위치의 좌표는 이상 이하인 실수면 어디든 된다.
플랫랜드의 태양 고도는 항상 도다. 햇빛은 왼쪽 위에서 오른쪽 아래로 비추고, 모든 광선은 서로 평행하며 수평선과 도를 이룬다. 타워의 발전량은 그 표면에서 햇빛을 받는 부분의 길이로 정해진다. 다시 말해 타워를 나타내는 수직 선분에서, 지형이나 다른 타워에 막히지 않고 광선이 닿는 부분의 길이가 그 타워의 발전량이다.
두 타워를 가깝게 세우면 왼쪽 타워의 그림자가 오른쪽 타워에 드리워져 오른쪽 타워의 발전량이 줄어든다. 지형에 높은 지점이 있으면 그 그림자도 타워를 가린다.
햇빛을 받는 타워 표면 길이의 합이 최대가 되도록 타워를 세울 지점을 정해라.
입력
첫째 줄에 세 정수 , , 가 주어진다 (, , ). 둘째 줄에 타워의 높이 가 개 주어진다 (). 다음 개 줄에는 지형 꼭짓점의 좌표 , 가 한 줄에 하나씩 주어진다 (, , ).
출력
햇빛을 받는 타워 표면 길이의 합의 최댓값을 한 줄에 출력한다. 소수점 아래 여섯 자리까지 반올림해 여섯 자리를 모두 채워서 적는다. 반올림 결과가 구현에 따라 갈릴 만큼 경계에 가까운 답이 나오는 입력은 주어지지 않는다.
힌트
여러 타워를 같은 지점에 세울 수 있다. 이때는 그 지점에 세운 타워 중 가장 긴 하나만 햇빛을 받는 것으로 본다.