use proconio::input; fn main() { input! { n: usize, } let mut ans = 0; for i in 0..=n { for j in i..=n { // popcountが一致するかを見る let cnt1 = (i as u64).count_ones(); let cnt2 = (j as u64).count_ones(); // 一致する場合は、ANDをとる if cnt1 == cnt2 { // 取った値を加算 let val = i & j; ans += val; ans %= 998244353; } } } println!("{}", ans); }