fn solve()

in contests/abc168/abc168_c.rs [21:46]


fn solve(src: &str) -> String {
    let source = AutoSource::from(src);

    input! {
        from source,
        H_LENGTH: usize,
        M_LENGTH: usize,
        H: usize,
        M: usize,
    }

    let H_LENGTH: usize = H_LENGTH;
    let M_LENGTH: usize = M_LENGTH;

    let h_angle = 360. / 12. * H as f64 + 360. / 12. / 60. * M as f64;
    let m_angle = 360. / 60. * M as f64;
    let angle = (h_angle - m_angle).abs();

    let a2plusb2 = (H_LENGTH.pow(2) + M_LENGTH.pow(2)) as f64;
    let ab2 = (2 * H_LENGTH * M_LENGTH) as f64;
    let cosC = cos(angle * (PI / 180.));

    let answer = sqrt(a2plusb2 - ab2 * cosC);

    format!("{:.10}", answer)
}