import java.util.*;
public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        // 整数の入力
        int n500 = sc.nextInt();
        int n100 = sc.nextInt();
        int n50 = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for (int i = 0; i <= n500; i++) {
            for (int j = 0; j <= n100; j++) {
                for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                }
            }
        }
        // 出力
        System.out.println(count);
    }
} import java.util.*; util.* java public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        // 整数の入力
        int n500 = sc.nextInt();
        int n100 = sc.nextInt();
        int n50 = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for (int i = 0; i <= n500; i++) {
            for (int j = 0; j <= n100; j++) {
                for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                }
            }
        }
        // 出力
        System.out.println(count);
    }
} Main public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        // 整数の入力
        int n500 = sc.nextInt();
        int n100 = sc.nextInt();
        int n50 = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for (int i = 0; i <= n500; i++) {
            for (int j = 0; j <= n100; j++) {
                for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                }
            }
        }
        // 出力
        System.out.println(count);
    } main {
        Scanner sc = new Scanner(System.in);
        // 整数の入力
        int n500 = sc.nextInt();
        int n100 = sc.nextInt();
        int n50 = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for (int i = 0; i <= n500; i++) {
            for (int j = 0; j <= n100; j++) {
                for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                }
            }
        }
        // 出力
        System.out.println(count);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n500 = sc.nextInt(); n500 sc.nextInt() sc.nextInt sc int n100 = sc.nextInt(); n100 sc.nextInt() sc.nextInt sc int n50 = sc.nextInt(); n50 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 <= n500; i++) {
            for (int j = 0; j <= n100; j++) {
                for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                }
            }
        } int i = 0; int i = 0; i 0 i <= n500 i n500 i++ i++ i {
            for (int j = 0; j <= n100; j++) {
                for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                }
            }
        } {
            for (int j = 0; j <= n100; j++) {
                for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                }
            }
        } for (int j = 0; j <= n100; j++) {
                for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                }
            } int j = 0; int j = 0; j 0 j <= n100 j n100 j++ j++ j {
                for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                }
            } {
                for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                }
            } for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                } int k = 0; int k = 0; k 0 k <= n50 k n50 k++ k++ k {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                } {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                } if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    } i * 500 + j * 100 + k * 50 == x i * 500 + j * 100 + k * 50 i * 500 + j * 100 + k * 50 i * 500 i 500 j * 100 j 100 k * 50 k 50 x {
                        count++;
                    } count++ count System.out.println(count) System.out.println System.out System System.out count String[] args args public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        // 整数の入力
        int n500 = sc.nextInt();
        int n100 = sc.nextInt();
        int n50 = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for (int i = 0; i <= n500; i++) {
            for (int j = 0; j <= n100; j++) {
                for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                }
            }
        }
        // 出力
        System.out.println(count);
    }
} public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        // 整数の入力
        int n500 = sc.nextInt();
        int n100 = sc.nextInt();
        int n50 = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for (int i = 0; i <= n500; i++) {
            for (int j = 0; j <= n100; j++) {
                for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                }
            }
        }
        // 出力
        System.out.println(count);
    }
} Main
import java.util.*;
public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        // 整数の入力
        int n500 = sc.nextInt();
        int n100 = sc.nextInt();
        int n50 = sc.nextInt();
        int x = sc.nextInt();
        int count = 0;

        for (int i = 0; i <= n500; i++) {
            for (int j = 0; j <= n100; j++) {
                for (int k = 0; k <= n50; k++) {
                    if (i * 500 + j * 100 + k * 50 == x) {
                        count++;
                    }
                }
            }
        }
        // 出力
        System.out.println(count);
    }
}
