import Control.Applicative ((<$>)) import Control.Monad (replicateM) import Data.List import qualified Data.Vector.Unboxed as VU main :: IO () main = do n <- getl read solve <$> replicateM n (getl $ map read . words) >>= print solve :: [[Int]] -> Int solve = (\(x, y) -> x + y `div` 4) . VU.foldl' g (0, 0) . foldl' f (VU.replicate 11 0) where f :: VU.Vector Int -> [Int] -> VU.Vector Int f v ls = VU.accum (+) v $ zip ls (repeat 1) g (q, r) x = (q + x `div` 2, r + x `mod` 2) getl :: (String -> a) -> IO a getl f = f <$> getLine