結果
問題 | No.1286 Stone Skipping |
ユーザー | atcoder8 |
提出日時 | 2024-04-15 20:05:15 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 1 ms / 2,000 ms |
コード長 | 687 bytes |
コンパイル時間 | 12,619 ms |
コンパイル使用メモリ | 378,596 KB |
実行使用メモリ | 6,816 KB |
最終ジャッジ日時 | 2024-10-06 00:02:42 |
合計ジャッジ時間 | 13,778 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 26 |
ソースコード
use proconio::input; fn main() { input! { d: usize, } let search_init_dist = |times: usize| { let calc_sum_dist = |init_dist: usize| (0..times).map(|i| init_dist >> i).sum::<usize>(); let mut ok = d; let mut ng = 0_usize; while ok.abs_diff(ng) > 1 { let mid = (ok + ng) / 2; if calc_sum_dist(mid) >= d { ok = mid; } else { ng = mid; } } if calc_sum_dist(ok) == d { Some(ok) } else { None } }; let ans = (1..=60).filter_map(search_init_dist).min().unwrap(); println!("{}", ans); }