結果
問題 |
No.2829 GCD Divination
|
ユーザー |
|
提出日時 | 2024-08-02 21:46:07 |
言語 | Rust (1.83.0 + proconio) |
結果 |
WA
|
実行時間 | - |
コード長 | 568 bytes |
コンパイル時間 | 11,666 ms |
コンパイル使用メモリ | 400,664 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-08-02 21:46:47 |
合計ジャッジ時間 | 37,672 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 4 WA * 31 |
コンパイルメッセージ
warning: variable `N` should have a snake case name --> src/main.rs:16:3 | 16 | N: usize, | ^ help: convert the identifier to snake case: `n` | = note: `#[warn(non_snake_case)]` on by default
ソースコード
use proconio::input; use std::collections::HashMap; fn gcd(x: usize, y: usize) -> usize { if x < y { return gcd(y, x); } if y == 0 { return y; } gcd(y, x % y) } fn main() { input! { N: usize, } let mut dp = HashMap::new(); fn rec(dp: &mut HashMap<usize, f64>, n: usize) -> f64 { if n == 1 { return 0.0; } if let Some(&ans) = dp.get(&n) { return ans; } let mut sum = 0.0; for i in 1 ..= n { sum += 1.0 + rec(dp, gcd(n, i)); } let ans = sum / (n - 1) as f64; dp.insert(n, ans); ans } println!("{}", rec(&mut dp, N)); }