import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for(int i = 0; i <= a; i++){
            int rest1 = x;
            rest1 = rest1 - 500*i;
            if(rest1 < 0 || rest1 > 100*b + 50*c){
                continue;
            }

            for(int j = 0; j <= b; j++){
                int rest2 = rest1;
                rest2 = rest2 - 100*j;
                if(rest2 < 0 || rest2 > 50*c){
                    continue;
                }

                if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                }
            }
        }

        System.out.println(count);
        sc.close();
    }

} import java.util.Scanner; Scanner java.util public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for(int i = 0; i <= a; i++){
            int rest1 = x;
            rest1 = rest1 - 500*i;
            if(rest1 < 0 || rest1 > 100*b + 50*c){
                continue;
            }

            for(int j = 0; j <= b; j++){
                int rest2 = rest1;
                rest2 = rest2 - 100*j;
                if(rest2 < 0 || rest2 > 50*c){
                    continue;
                }

                if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                }
            }
        }

        System.out.println(count);
        sc.close();
    }

} Main public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for(int i = 0; i <= a; i++){
            int rest1 = x;
            rest1 = rest1 - 500*i;
            if(rest1 < 0 || rest1 > 100*b + 50*c){
                continue;
            }

            for(int j = 0; j <= b; j++){
                int rest2 = rest1;
                rest2 = rest2 - 100*j;
                if(rest2 < 0 || rest2 > 50*c){
                    continue;
                }

                if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                }
            }
        }

        System.out.println(count);
        sc.close();
    } main {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for(int i = 0; i <= a; i++){
            int rest1 = x;
            rest1 = rest1 - 500*i;
            if(rest1 < 0 || rest1 > 100*b + 50*c){
                continue;
            }

            for(int j = 0; j <= b; j++){
                int rest2 = rest1;
                rest2 = rest2 - 100*j;
                if(rest2 < 0 || rest2 > 50*c){
                    continue;
                }

                if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                }
            }
        }

        System.out.println(count);
        sc.close();
    } 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 count = 0; count 0 for(int i = 0; i <= a; i++){
            int rest1 = x;
            rest1 = rest1 - 500*i;
            if(rest1 < 0 || rest1 > 100*b + 50*c){
                continue;
            }

            for(int j = 0; j <= b; j++){
                int rest2 = rest1;
                rest2 = rest2 - 100*j;
                if(rest2 < 0 || rest2 > 50*c){
                    continue;
                }

                if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                }
            }
        } int i = 0; int i = 0; i 0 i <= a i a i++ i++ i {
            int rest1 = x;
            rest1 = rest1 - 500*i;
            if(rest1 < 0 || rest1 > 100*b + 50*c){
                continue;
            }

            for(int j = 0; j <= b; j++){
                int rest2 = rest1;
                rest2 = rest2 - 100*j;
                if(rest2 < 0 || rest2 > 50*c){
                    continue;
                }

                if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                }
            }
        } {
            int rest1 = x;
            rest1 = rest1 - 500*i;
            if(rest1 < 0 || rest1 > 100*b + 50*c){
                continue;
            }

            for(int j = 0; j <= b; j++){
                int rest2 = rest1;
                rest2 = rest2 - 100*j;
                if(rest2 < 0 || rest2 > 50*c){
                    continue;
                }

                if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                }
            }
        } int rest1 = x; rest1 x rest1 = rest1 - 500*i rest1 rest1 - 500*i rest1 500*i 500 i if(rest1 < 0 || rest1 > 100*b + 50*c){
                continue;
            } rest1 < 0 || rest1 > 100*b + 50*c rest1 < 0 rest1 0 rest1 > 100*b + 50*c rest1 100*b + 50*c 100*b 100 b 50*c 50 c {
                continue;
            } continue; for(int j = 0; j <= b; j++){
                int rest2 = rest1;
                rest2 = rest2 - 100*j;
                if(rest2 < 0 || rest2 > 50*c){
                    continue;
                }

                if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                }
            } int j = 0; int j = 0; j 0 j <= b j b j++ j++ j {
                int rest2 = rest1;
                rest2 = rest2 - 100*j;
                if(rest2 < 0 || rest2 > 50*c){
                    continue;
                }

                if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                }
            } {
                int rest2 = rest1;
                rest2 = rest2 - 100*j;
                if(rest2 < 0 || rest2 > 50*c){
                    continue;
                }

                if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                }
            } int rest2 = rest1; rest2 rest1 rest2 = rest2 - 100*j rest2 rest2 - 100*j rest2 100*j 100 j if(rest2 < 0 || rest2 > 50*c){
                    continue;
                } rest2 < 0 || rest2 > 50*c rest2 < 0 rest2 0 rest2 > 50*c rest2 50*c 50 c {
                    continue;
                } continue; if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                } rest2 % 50 == 0 && rest2 / 50 <= c rest2 % 50 == 0 rest2 % 50 rest2 50 0 rest2 / 50 <= c rest2 / 50 rest2 50 c {
                    count++;
                } count++ count System.out.println(count) System.out.println System.out System System.out count sc.close() sc.close sc String[] args args public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for(int i = 0; i <= a; i++){
            int rest1 = x;
            rest1 = rest1 - 500*i;
            if(rest1 < 0 || rest1 > 100*b + 50*c){
                continue;
            }

            for(int j = 0; j <= b; j++){
                int rest2 = rest1;
                rest2 = rest2 - 100*j;
                if(rest2 < 0 || rest2 > 50*c){
                    continue;
                }

                if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                }
            }
        }

        System.out.println(count);
        sc.close();
    }

} public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for(int i = 0; i <= a; i++){
            int rest1 = x;
            rest1 = rest1 - 500*i;
            if(rest1 < 0 || rest1 > 100*b + 50*c){
                continue;
            }

            for(int j = 0; j <= b; j++){
                int rest2 = rest1;
                rest2 = rest2 - 100*j;
                if(rest2 < 0 || rest2 > 50*c){
                    continue;
                }

                if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                }
            }
        }

        System.out.println(count);
        sc.close();
    }

} Main
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for(int i = 0; i <= a; i++){
            int rest1 = x;
            rest1 = rest1 - 500*i;
            if(rest1 < 0 || rest1 > 100*b + 50*c){
                continue;
            }

            for(int j = 0; j <= b; j++){
                int rest2 = rest1;
                rest2 = rest2 - 100*j;
                if(rest2 < 0 || rest2 > 50*c){
                    continue;
                }

                if(rest2 % 50 == 0 && rest2 / 50 <= c){
                    count++;
                }
            }
        }

        System.out.println(count);
        sc.close();
    }

}
