2023-11-30 『ドクター・ストレンジ/マルチバース・オブ・マッドネス』 / PAST #12 J
『ドクター・ストレンジ/マルチバース・オブ・マッドネス』を観た。ワンダビジョン観ておいて良かった。……ただもうマルチバースはいいよという気持ちになっている。
PAST #12 第12回 アルゴリズム実技検定 過去問
- J - スプリンクラー
https://atcoder.jp/contests/past202209-open/tasks/past202209_j
- 提出: https://atcoder.jp/contests/past202209-open/submissions/48056146
- 解説 AC
- 三角形の部分の面積をうまく求められず死
use proconio::input;
fn main() {
input! {
h: usize,
w: usize,
d: usize,
};
// 対角線の長さが直径以下なら
if h.pow(2) + w.pow(2) <= (2 * d).pow(2) {
println!("1");
return;
}
let f = |h: usize, d: usize| -> f64 {
if h >= 2 * d {
0_f64
} else {
let theta = (h as f64 / 2_f64 / d as f64).acos();
let a1 = d.pow(2) as f64 * theta / 2_f64;
let a2 = d.pow(2) as f64 * theta.sin() * theta.cos() / 2_f64;
(a1 - a2) * 4_f64
}
};
let area_circle = d.pow(2) as f64 * std::f64::consts::PI;
let a1 = f(h, d);
let a2 = f(w, d);
let area_rectangle = (h * w) as f64;
let ans = (area_circle - a1 - a2) / area_rectangle;
println!("{}", ans);
}
今日のコミット。
- rust-atcoder 1 commit
- kireta 1 commit