/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;

/**
 *
 * @author nai
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception{
        // TODO code application logic here
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int X = sc.nextInt();
        int cou = 0;
        
        for(int a = 0 ; a < A + 1 ; a++ ){
            for(int b = 0 ; b < B + 1 ; b++ ){
                int c = (X - 500 * a - 100 * b) / 50;
                if(0 <= c && c <= C){
                    cou++;
                }
            }
        }
        System.out.println(cou);
    }
  }
    
 import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.Scanner; Scanner java.util public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception{
        // TODO code application logic here
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int X = sc.nextInt();
        int cou = 0;
        
        for(int a = 0 ; a < A + 1 ; a++ ){
            for(int b = 0 ; b < B + 1 ; b++ ){
                int c = (X - 500 * a - 100 * b) / 50;
                if(0 <= c && c <= C){
                    cou++;
                }
            }
        }
        System.out.println(cou);
    }
  } Main /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception{
        // TODO code application logic here
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int X = sc.nextInt();
        int cou = 0;
        
        for(int a = 0 ; a < A + 1 ; a++ ){
            for(int b = 0 ; b < B + 1 ; b++ ){
                int c = (X - 500 * a - 100 * b) / 50;
                if(0 <= c && c <= C){
                    cou++;
                }
            }
        }
        System.out.println(cou);
    } main {
        // TODO code application logic here
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int X = sc.nextInt();
        int cou = 0;
        
        for(int a = 0 ; a < A + 1 ; a++ ){
            for(int b = 0 ; b < B + 1 ; b++ ){
                int c = (X - 500 * a - 100 * b) / 50;
                if(0 <= c && c <= C){
                    cou++;
                }
            }
        }
        System.out.println(cou);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int A = sc.nextInt(); A sc.nextInt() sc.nextInt sc int B = sc.nextInt(); B sc.nextInt() sc.nextInt sc int C = sc.nextInt(); C sc.nextInt() sc.nextInt sc int X = sc.nextInt(); X sc.nextInt() sc.nextInt sc int cou = 0; cou 0 for(int a = 0 ; a < A + 1 ; a++ ){
            for(int b = 0 ; b < B + 1 ; b++ ){
                int c = (X - 500 * a - 100 * b) / 50;
                if(0 <= c && c <= C){
                    cou++;
                }
            }
        } int a = 0 ; int a = 0 ; a 0 a < A + 1 a A + 1 A 1 a++ a++ a {
            for(int b = 0 ; b < B + 1 ; b++ ){
                int c = (X - 500 * a - 100 * b) / 50;
                if(0 <= c && c <= C){
                    cou++;
                }
            }
        } {
            for(int b = 0 ; b < B + 1 ; b++ ){
                int c = (X - 500 * a - 100 * b) / 50;
                if(0 <= c && c <= C){
                    cou++;
                }
            }
        } for(int b = 0 ; b < B + 1 ; b++ ){
                int c = (X - 500 * a - 100 * b) / 50;
                if(0 <= c && c <= C){
                    cou++;
                }
            } int b = 0 ; int b = 0 ; b 0 b < B + 1 b B + 1 B 1 b++ b++ b {
                int c = (X - 500 * a - 100 * b) / 50;
                if(0 <= c && c <= C){
                    cou++;
                }
            } {
                int c = (X - 500 * a - 100 * b) / 50;
                if(0 <= c && c <= C){
                    cou++;
                }
            } int c = (X - 500 * a - 100 * b) / 50; c (X - 500 * a - 100 * b) / 50 (X - 500 * a - 100 * b) X - 500 * a - 100 * b X 500 * a 500 a 100 * b 100 b 50 if(0 <= c && c <= C){
                    cou++;
                } 0 <= c && c <= C 0 <= c 0 c c <= C c C {
                    cou++;
                } cou++ cou System.out.println(cou) System.out.println System.out System System.out cou String[] args args public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception{
        // TODO code application logic here
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int X = sc.nextInt();
        int cou = 0;
        
        for(int a = 0 ; a < A + 1 ; a++ ){
            for(int b = 0 ; b < B + 1 ; b++ ){
                int c = (X - 500 * a - 100 * b) / 50;
                if(0 <= c && c <= C){
                    cou++;
                }
            }
        }
        System.out.println(cou);
    }
  } public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception{
        // TODO code application logic here
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int X = sc.nextInt();
        int cou = 0;
        
        for(int a = 0 ; a < A + 1 ; a++ ){
            for(int b = 0 ; b < B + 1 ; b++ ){
                int c = (X - 500 * a - 100 * b) / 50;
                if(0 <= c && c <= C){
                    cou++;
                }
            }
        }
        System.out.println(cou);
    }
  } Main
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;

/**
 *
 * @author nai
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception{
        // TODO code application logic here
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int X = sc.nextInt();
        int cou = 0;
        
        for(int a = 0 ; a < A + 1 ; a++ ){
            for(int b = 0 ; b < B + 1 ; b++ ){
                int c = (X - 500 * a - 100 * b) / 50;
                if(0 <= c && c <= C){
                    cou++;
                }
            }
        }
        System.out.println(cou);
    }
  }
    

