Solution of AndInt

Haskell implementation:

solve [a, b] = (sum $ map subsequences deltas) `mod` (10^9+7)
    where deltas         = zipWith (-) (tail interestPoints) interestPoints
          interestPoints = a : (dropWhile (<= a) $ takeWhile (<= b) powers) ++ [b+1]
          subsequences x = (x * succ x) `div` 2
          powers         = map (2^) [1..]

main = do
    input <- getContents
    let queries = map ((map read) . words) $ (tail . lines) input
    sequence $ map (print . solve) queries
Questions?

Sponsors Gold