Advertisement
Guest User

Untitled

a guest
May 28th, 2015
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.57 KB | None | 0 0
  1. import Control.Monad
  2. import Text.Printf
  3. import Control.Applicative
  4.  
  5. main :: IO()
  6. main = do
  7. testCase <- readLn
  8. forM_ [1..testCase] $ \i -> do
  9. [_, a] <- words <$> getLine
  10. let ans = slv (zip a [1..]) (0, 0)
  11. printf "Case #%d: %d\n" (i :: Int) ans
  12.  
  13. slv :: [(Char, Integer)] -> (Integer, Integer) -> Integer
  14. slv [] (nowTotal, needTotal) = needTotal
  15. slv ((a, i):as) (nowTotal, needTotal) | i > (ai + nowTotal) = slv as (i, needTotal + (i-(ai + nowTotal)))
  16. | otherwise = slv as (nowTotal + ai, needTotal)
  17. where ai = read [a] :: Integer
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement