use proconio::{fastout, input}; #[fastout] fn main() { input! { t: usize, nn: [usize; t], } for &n in &nn { println!("{}", solve(n)); } } fn solve(n: usize) -> usize { let sub_solve = |exp: u32| { let raised = 2_usize.pow(exp); let q = (n + 1) / (2 * raised); let r = (n + 1) % (2 * raised); q * raised + r.saturating_sub(raised) }; (0_u32..40).map(sub_solve).sum() }