use proconio::input; fn main() { input! { n: usize, cards: [(usize, usize); n], } let mut count = [0usize; 4]; for &(a, b) in &cards { let i = a.trailing_zeros().min(3) as usize; count[i] += b; } let mut ans = count[3]; let m = count[1].min(count[2]); count[1] -= m; count[2] -= m; ans += m; ans += count[1] / 3; ans += count[2] / 2; println!("{ans}"); }