[AtCoder] ABC 168 C – : (Colon)

2020年12月14日

問題

方針

余弦定理を使います。時針は \( M \) の値に影響を受けることに注意すると、\(1\) 時間で \(30^\circ \) 動くので、

\[30 \times (H + \dfrac{M}{60})^\circ\]

動きます。

コード

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
    double A, B, H, M;
    cin >> A >> B >> H >> M;
    double t = abs(360 / 12 * (H + M / 60)- 360 / 60 * M);
    double ans = sqrt(A * A + B * B - 2 * A * B * cos(acos(-1) * t / 180));
    printf("%.9f\n", ans);
    return 0;
}