import java.util.Scanner;

public class Main {

	public static void main(String[] count) {

		Scanner scan = new Scanner(System.in);

		int A500 = Integer.parseInt(scan.next());

		int B100 = Integer.parseInt(scan.next());

		int C50 = Integer.parseInt(scan.next());

		int Xtotal = Integer.parseInt(scan.next());

		scan.close();

		// start

		int result = 0;

		int counts = C50 * B100 * A500;
		int[][] array = new int[counts][3];

		for (int i = 0; i <= C50; i++) {
			for (int j = 0; j <= B100; j++) {
				for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				}

			}

		}

		System.out.println(result);
	}

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

	public static void main(String[] count) {

		Scanner scan = new Scanner(System.in);

		int A500 = Integer.parseInt(scan.next());

		int B100 = Integer.parseInt(scan.next());

		int C50 = Integer.parseInt(scan.next());

		int Xtotal = Integer.parseInt(scan.next());

		scan.close();

		// start

		int result = 0;

		int counts = C50 * B100 * A500;
		int[][] array = new int[counts][3];

		for (int i = 0; i <= C50; i++) {
			for (int j = 0; j <= B100; j++) {
				for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				}

			}

		}

		System.out.println(result);
	}

} Main public static void main(String[] count) {

		Scanner scan = new Scanner(System.in);

		int A500 = Integer.parseInt(scan.next());

		int B100 = Integer.parseInt(scan.next());

		int C50 = Integer.parseInt(scan.next());

		int Xtotal = Integer.parseInt(scan.next());

		scan.close();

		// start

		int result = 0;

		int counts = C50 * B100 * A500;
		int[][] array = new int[counts][3];

		for (int i = 0; i <= C50; i++) {
			for (int j = 0; j <= B100; j++) {
				for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				}

			}

		}

		System.out.println(result);
	} main {

		Scanner scan = new Scanner(System.in);

		int A500 = Integer.parseInt(scan.next());

		int B100 = Integer.parseInt(scan.next());

		int C50 = Integer.parseInt(scan.next());

		int Xtotal = Integer.parseInt(scan.next());

		scan.close();

		// start

		int result = 0;

		int counts = C50 * B100 * A500;
		int[][] array = new int[counts][3];

		for (int i = 0; i <= C50; i++) {
			for (int j = 0; j <= B100; j++) {
				for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				}

			}

		}

		System.out.println(result);
	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) int A500 = Integer.parseInt(scan.next()); A500 Integer.parseInt(scan.next()) Integer.parseInt Integer scan.next() scan.next scan int B100 = Integer.parseInt(scan.next()); B100 Integer.parseInt(scan.next()) Integer.parseInt Integer scan.next() scan.next scan int C50 = Integer.parseInt(scan.next()); C50 Integer.parseInt(scan.next()) Integer.parseInt Integer scan.next() scan.next scan int Xtotal = Integer.parseInt(scan.next()); Xtotal Integer.parseInt(scan.next()) Integer.parseInt Integer scan.next() scan.next scan scan.close() scan.close scan int result = 0; result 0 int counts = C50 * B100 * A500; counts C50 * B100 * A500 C50 * B100 * A500 C50 B100 A500 int[][] array = new int[counts][3]; array new int[counts][3] counts 3 for (int i = 0; i <= C50; i++) {
			for (int j = 0; j <= B100; j++) {
				for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				}

			}

		} int i = 0; int i = 0; i 0 i <= C50 i C50 i++ i++ i {
			for (int j = 0; j <= B100; j++) {
				for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				}

			}

		} {
			for (int j = 0; j <= B100; j++) {
				for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				}

			}

		} for (int j = 0; j <= B100; j++) {
				for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				}

			} int j = 0; int j = 0; j 0 j <= B100 j B100 j++ j++ j {
				for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				}

			} {
				for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				}

			} for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				} int j2 = 0; int j2 = 0; j2 0 j2 <= A500 j2 A500 j2++ j2++ j2 {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				} {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				} if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					} (50 * i + 100 * j + 500 * j2) == Xtotal (50 * i + 100 * j + 500 * j2) 50 * i + 100 * j + 500 * j2 50 * i 50 i 100 * j 100 j 500 * j2 500 j2 Xtotal {
						result++;
					} result++ result System.out.println(result) System.out.println System.out System System.out result String[] count count public class Main {

	public static void main(String[] count) {

		Scanner scan = new Scanner(System.in);

		int A500 = Integer.parseInt(scan.next());

		int B100 = Integer.parseInt(scan.next());

		int C50 = Integer.parseInt(scan.next());

		int Xtotal = Integer.parseInt(scan.next());

		scan.close();

		// start

		int result = 0;

		int counts = C50 * B100 * A500;
		int[][] array = new int[counts][3];

		for (int i = 0; i <= C50; i++) {
			for (int j = 0; j <= B100; j++) {
				for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				}

			}

		}

		System.out.println(result);
	}

} public class Main {

	public static void main(String[] count) {

		Scanner scan = new Scanner(System.in);

		int A500 = Integer.parseInt(scan.next());

		int B100 = Integer.parseInt(scan.next());

		int C50 = Integer.parseInt(scan.next());

		int Xtotal = Integer.parseInt(scan.next());

		scan.close();

		// start

		int result = 0;

		int counts = C50 * B100 * A500;
		int[][] array = new int[counts][3];

		for (int i = 0; i <= C50; i++) {
			for (int j = 0; j <= B100; j++) {
				for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				}

			}

		}

		System.out.println(result);
	}

} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] count) {

		Scanner scan = new Scanner(System.in);

		int A500 = Integer.parseInt(scan.next());

		int B100 = Integer.parseInt(scan.next());

		int C50 = Integer.parseInt(scan.next());

		int Xtotal = Integer.parseInt(scan.next());

		scan.close();

		// start

		int result = 0;

		int counts = C50 * B100 * A500;
		int[][] array = new int[counts][3];

		for (int i = 0; i <= C50; i++) {
			for (int j = 0; j <= B100; j++) {
				for (int j2 = 0; j2 <= A500; j2++) {
					if ((50 * i + 100 * j + 500 * j2) == Xtotal) {
						result++;
					}

				}

			}

		}

		System.out.println(result);
	}

}
