밀주

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

요약
몸통, 어깨, 목으로 이루어진 회전체 통을 세워 두었을 때의 술 높이가 주어질 때, 눕혔을 때의 술 높이를 구한다.
난이도

어려움10점 중 8점

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

문제

할머니가 대가족 모임을 위해 밀주 위스키를 담그고 있습니다. 친척이 워낙 많아 여러 번에 나누어 술을 빚은 뒤, 커다란 금속 크림 통에 모두 부어 모읍니다. 몇 통을 빚고 맛도 보던 할머니가 그만 비틀거리다 통을 옆으로 넘어뜨렸습니다. 다행히 뚜껑이 꽉 닫혀 있어 위스키는 한 방울도 새지 않았습니다.

이 통은 하나의 중심축을 기준으로 한 회전체입니다. 높이 hbh_b, 지름 dbd_b인 원통형 몸통과, 높이 hnh_n, 지름 dnd_n인 원통형 목으로 이루어져 있습니다. 몸통과 목은 같은 축을 공유하며, 원뿔대(테이퍼진 원뿔) 모양의 어깨로 이어져 통 전체의 높이가 hh가 됩니다. 따라서 어깨의 높이는 h−hb−hnh - h_b - h_n입니다. 통의 바닥은 지름 dbd_b인 원판이 몸통을 막고, 뚜껑은 지름 dnd_n인 원판이 목을 막습니다.

통을 똑바로 세웠을 때 위스키의 깊이는 kk cm였습니다. 이 통을 옆으로 눕혔을 때, 통의 가장 낮은 지점에서 잰 위스키의 깊이는 얼마입니까?

입력

입력은 여러 개의 테스트 케이스로 이루어집니다. 각 테스트 케이스는 실수 여섯 개 kk, hbh_b, dbd_b, hnh_n, dnd_n, hh가 적힌 한 줄입니다. 100≥h≥hb+hn100 \ge h \ge h_b + h_n 그리고 100≥db≥dn100 \ge d_b \ge d_n임이 보장됩니다. 마지막 테스트 케이스 다음에는 0 0 0 0 0 0인 줄이 오며, 이 줄은 처리하지 않습니다.

출력

각 테스트 케이스마다, 통을 옆으로 눕혔을 때 위스키의 깊이 ss를 소수점 아래 둘째 자리까지 반올림하여 한 줄에 출력하세요.

예제5

  1. 예제 1

    입력
    5.625 10.0 10.0 5.0 5.0 15.0
    0 0 0 0 0 0
    
    예상 출력
    5.00
    
  2. 예제 2

    입력
    6.0 12.0 12.0 6.0 6.0 24.0
    0 0 0 0 0 0
    
    예상 출력
    4.78
    
  3. 예제 3

    입력
    20.0 12.0 12.0 6.0 6.0 24.0
    0 0 0 0 0 0
    
    예상 출력
    10.45
    
  4. 예제 4

    입력
    24.0 12.0 12.0 6.0 6.0 24.0
    0 0 0 0 0 0
    
    예상 출력
    12.00
    
  5. 예제 5

    입력
    10.0 12.0 8.0 8.0 8.0 20.0
    0 0 0 0 0 0
    
    예상 출력
    4.00