Edit

【pythonでABC168を解説】C - : (Colon)

問題概要

問題ページ

C - : (Colon)
C - : (Colon)

問題ページへ移動する

問題文

時針と分針の長さがそれぞれ \(A\) センチメートル、\(B\) センチメートルであるアナログ時計を考えます。

時針と分針それぞれの片方の端点は同じ定点に固定されており、この点を中心としてそれぞれの針は一定の角速度で時計回りに回転します。時針は \(12\) 時間で、分針は \(1\) 時間で \(1\) 周します。

\(0\) 時ちょうどに時針と分針は重なっていました。ちょうど \(H\) 時 \(M\) 分になったとき、\(2\) 本の針の固定されていない方の端点は何センチメートル離れているでしょうか。

制約

  • 入力はすべて整数
  • \(1 \leq A, B \leq 1000\)
  • \(0 \leq H \leq 11\)
  • \(0 \leq M \leq 59\)

問題の考察

ACコード

import sys
import math


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    a, b, h, m = list(map(int, input().rstrip('\n').split()))
    lg = 360 / 12 * h + 360 / 12 / 60 * m
    sh = 360 / 60 * m
    dif = abs(lg - sh)
    print((a ** 2 + b ** 2 - 2 * a * b * math.cos(math.radians(dif))) ** 0.5)


if __name__ == '__main__':
    solve()

-Edit
-