BOJ - 1798 - 원뿔좌표계상의 거리

Updated:

import sys
import math

_PI = 3.14159265

def getRadius(x):
    return x * _PI / 180

def solution():
    while True:
        arr = list(map(float, sys.stdin.readline().split()))
        if not arr: return

        r, h, d1, A1, d2, A2 = arr[0], arr[1], arr[2], arr[3], arr[4], arr[5]

        R = math.sqrt(h * h + r * r)
        T = 2 * _PI * r / R

        A2 = abs(A1 - A2)
        if A2 > 180:
            A2 = 360 - A2

        ret = math.sqrt(
            (d1 * d1 + d2 * d2) - 2 * d1 * d2 * math.cos(getRadius(A2) * T / 2 / _PI)
        )

        print("%0.2f"%ret)

solution()

https://www.acmicpc.net/problem/1798

Categories:

Updated:

Leave a comment