import qualified Data.ByteString.Char8 as C
import Data.Maybe ( fromJust )

readInt :: IO Int
readInt = fst . fromJust . C.readInt <$> C.getLine

main :: IO ()
main = do
  a <- readInt
  b <- readInt 
  c <- readInt 
  x <- readInt 
  print $ selection' a b c x

selection, selection'
  :: Int -> Int -> Int -> Int -> Int
selection a b c x
  = length [(s,t,u) | s<-[0..a], t<-[0..b], u<-[0..c]
                    , 500*s + 100*t + 50*u == x]

selection' a b c x = sum [ g b c (x-500*s) | s <- [0 .. a]]
  where
    g b c x = sum [h c (x-100*t) | t <- [0 .. b]]
    h c x 
      | x >= 0 && 50* c >= x = 1
      | otherwise            = 0