module Main where

import Control.Applicative
import Control.Monad
import Data.List

main :: IO ()
main = do
    [a, b, c, x] <- replicateM 4 readLn :: IO [Int]
    let n = do
            i <- [0 .. a]
            j <- [0 .. b]
            k <- [0 .. c]
            let amt = i * 500 + j * 100 + k * 50
            guard (amt == x)
            return (i, j, k)
    print $ length n