import Control.Applicative ((<$>)) import Control.Monad (replicateM) import Data.List main :: IO () main = do solve <$> replicateM 3 (getl read) >>= print solve :: [Int] -> Int solve ms = fst $ foldl' f (0, (im `mod` 1000)) [100, 25, 1] where im = sum $ zipWith (*) ms [100, 25, 1] f (c, m) p = (c + m `div` p, m `mod` p) getl :: (String -> a) -> IO a getl f = f <$> getLine