結果
問題 |
No.3276 Make Smaller Popcount
|
ユーザー |
![]() |
提出日時 | 2025-09-19 21:55:18 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 29 ms / 2,000 ms |
コード長 | 618 bytes |
コンパイル時間 | 11,932 ms |
コンパイル使用メモリ | 400,244 KB |
実行使用メモリ | 7,716 KB |
最終ジャッジ日時 | 2025-09-19 21:55:34 |
合計ジャッジ時間 | 15,444 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 28 |
ソースコード
use proconio::input; use std::io::Write; fn main() { input! { t: usize } let mut output = std::io::BufWriter::new(std::io::stdout().lock()); for _ in 0..t { let ans = solve(); writeln!(output, "{}", ans.unwrap_or(!0) as isize).unwrap(); } } fn solve() -> Option<usize> { input! { n: usize } if n.count_ones() == 1 { None } else { let mask = (0..40) .map(|i| (1 << i) - 1) .find(|&mask| (n & mask).count_ones() > 1) .unwrap(); let ans = mask + 1 - (n & mask); Some(ans) } } // 10101101 => 10110000