2022 사다리

정민용·2023년 2월 15일

백준

목록 보기
55/286

문제

아래의 그림과 같이 높은 빌딩 사이를 따라 좁은 길이 나있다. 두 개의 사다리가 있는데 길이가 x인 사다리는 오른쪽 빌딩의 아래를 받침대로 하여 왼쪽 빌딩에 기대져 있고 길이가 y인 사다리는 왼쪽 빌딩의 아래를 받침대로 하여 오른쪽 빌딩에 기대져 있다.
그리고 두 사다리는 땅에서부터 정확하게 c인 지점에서 서로 교차한다. 그렇다면 두 빌딩은 얼마나 떨어져 있는 걸까?

import sys

input = lambda: sys.stdin.readline().strip()

# 두 빌딩이 떨어져 있는 거리 : mid
# c / r(x^2 – mid^2) + c / r(y^2 – mid^2) = 1

x, y, c = map(float, input().split())

start = 0.0000001
end = min(x, y) - 0.0000001
result = 0

while start <= end:
  mid = (start + end) / 2
  num = c / ((x * x - mid * mid)**0.5) + c / ((y * y - mid * mid)**0.5)
  check_num = int(num * 10000) / 10000
  if check_num <= 1:
    result = int((mid + 0.0005) * 1000) / 1000
    start = mid + 0.000001
  else:
    end = mid - 0.000001

print(result)

백준 2022 사다리

0개의 댓글