import java.util.Scanner;
     
class Main{
    public static void main(String arg[]) {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int X = sc.nextInt();
        //sc.nextLine();
        //String S = sc.nextLine();
        sc.close();
        //String[] s = S.split(" ");
        //int[] n = new int[N];
        
        //for(int i = 0; i < N; i++) {
        //	String tmp = s[i];
        //	n[i] = Integer.parseInt(tmp);
        //}
        
        System.out.println(calc(A,B,C,X));    
    }
    
    public static int calc(int A,int B,int C,int X) {
    	int count = 0;
    	for(int i = 0; i <= A; i++){
            for(int j = 0; j <= B; j++){
                for(int k = 0; k <= C; k++){
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } 
            }
        }
		return count;
    }
} import java.util.Scanner; Scanner java.util class Main{
    public static void main(String arg[]) {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int X = sc.nextInt();
        //sc.nextLine();
        //String S = sc.nextLine();
        sc.close();
        //String[] s = S.split(" ");
        //int[] n = new int[N];
        
        //for(int i = 0; i < N; i++) {
        //	String tmp = s[i];
        //	n[i] = Integer.parseInt(tmp);
        //}
        
        System.out.println(calc(A,B,C,X));    
    }
    
    public static int calc(int A,int B,int C,int X) {
    	int count = 0;
    	for(int i = 0; i <= A; i++){
            for(int j = 0; j <= B; j++){
                for(int k = 0; k <= C; k++){
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } 
            }
        }
		return count;
    }
} Main public static void main(String arg[]) {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int X = sc.nextInt();
        //sc.nextLine();
        //String S = sc.nextLine();
        sc.close();
        //String[] s = S.split(" ");
        //int[] n = new int[N];
        
        //for(int i = 0; i < N; i++) {
        //	String tmp = s[i];
        //	n[i] = Integer.parseInt(tmp);
        //}
        
        System.out.println(calc(A,B,C,X));    
    } main {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int X = sc.nextInt();
        //sc.nextLine();
        //String S = sc.nextLine();
        sc.close();
        //String[] s = S.split(" ");
        //int[] n = new int[N];
        
        //for(int i = 0; i < N; i++) {
        //	String tmp = s[i];
        //	n[i] = Integer.parseInt(tmp);
        //}
        
        System.out.println(calc(A,B,C,X));    
    } 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 sc.close() sc.close sc System.out.println(calc(A,B,C,X)) System.out.println System.out System System.out calc(A,B,C,X) calc A B C X String arg[] arg public static int calc(int A,int B,int C,int X) {
    	int count = 0;
    	for(int i = 0; i <= A; i++){
            for(int j = 0; j <= B; j++){
                for(int k = 0; k <= C; k++){
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } 
            }
        }
		return count;
    } calc {
    	int count = 0;
    	for(int i = 0; i <= A; i++){
            for(int j = 0; j <= B; j++){
                for(int k = 0; k <= C; k++){
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } 
            }
        }
		return count;
    } int count = 0; count 0 for(int i = 0; i <= A; i++){
            for(int j = 0; j <= B; j++){
                for(int k = 0; k <= C; k++){
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } 
            }
        } int i = 0; int i = 0; i 0 i <= A i A i++ i++ i {
            for(int j = 0; j <= B; j++){
                for(int k = 0; k <= C; k++){
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } 
            }
        } {
            for(int j = 0; j <= B; j++){
                for(int k = 0; k <= C; k++){
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } 
            }
        } for(int j = 0; j <= B; j++){
                for(int k = 0; k <= C; k++){
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } 
            } int j = 0; int j = 0; j 0 j <= B j B j++ j++ j {
                for(int k = 0; k <= C; k++){
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } 
            } {
                for(int k = 0; k <= C; k++){
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } 
            } for(int k = 0; k <= C; k++){
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } int k = 0; int k = 0; k 0 k <= C k C k++ k++ k {
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } {
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } if( X == 500*i + 100*j + 50*k){
                        count++;
                    } X == 500*i + 100*j + 50*k X 500*i + 100*j + 50*k 500*i + 100*j + 50*k 500*i 500 i 100*j 100 j 50*k 50 k {
                        count++;
                    } count++ count return count; count int A A int B B int C C int X X
import java.util.Scanner;
     
class Main{
    public static void main(String arg[]) {
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int X = sc.nextInt();
        //sc.nextLine();
        //String S = sc.nextLine();
        sc.close();
        //String[] s = S.split(" ");
        //int[] n = new int[N];
        
        //for(int i = 0; i < N; i++) {
        //	String tmp = s[i];
        //	n[i] = Integer.parseInt(tmp);
        //}
        
        System.out.println(calc(A,B,C,X));    
    }
    
    public static int calc(int A,int B,int C,int X) {
    	int count = 0;
    	for(int i = 0; i <= A; i++){
            for(int j = 0; j <= B; j++){
                for(int k = 0; k <= C; k++){
                    if( X == 500*i + 100*j + 50*k){
                        count++;
                    }
                } 
            }
        }
		return count;
    }
}