toI(s=readline()) = parse(Int,s) toVI(s=readline()) = parse.(Int,split(s)) rep(f,n) = [f() for _ in 1:n] @enum YN Yes=1 No=0 function main() n = toI() ab = rep(toVI,n) solve(n,ab) |> println end function solve(n,ab) cnt = zeros(Int,4) for (a,b) in ab if a % 8 == 0 cnt[1] += b elseif a % 4 == 0 cnt[2] += b elseif a % 2 == 0 cnt[3] += b else cnt[4] += b end end res = cnt[1] d = min(cnt[2],cnt[3]) res += d cnt[2] -= d; cnt[3] -= d res += fld(cnt[2],2) + fld(cnt[3],3) res end @static if endswith(@__FILE__, PROGRAM_FILE) main() end