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[][][] price = new int[A+1][B+1][C+1];

		int way = 0;

		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				for(int k=0; k<=C; k++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				}
			}
		}

		System.out.println(way);
	}

} 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[][][] price = new int[A+1][B+1][C+1];

		int way = 0;

		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				for(int k=0; k<=C; k++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				}
			}
		}

		System.out.println(way);
	}

} 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[][][] price = new int[A+1][B+1][C+1];

		int way = 0;

		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				for(int k=0; k<=C; k++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				}
			}
		}

		System.out.println(way);
	} main {
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt();
		int B = sc.nextInt();
		int C = sc.nextInt();
		int X = sc.nextInt();
		int[][][] price = new int[A+1][B+1][C+1];

		int way = 0;

		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				for(int k=0; k<=C; k++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				}
			}
		}

		System.out.println(way);
	} 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[][][] price = new int[A+1][B+1][C+1]; price new int[A+1][B+1][C+1] A+1 A 1 B+1 B 1 C+1 C 1 int way = 0; way 0 for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				for(int k=0; k<=C; k++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				}
			}
		} 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++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				}
			}
		} {
			for(int j=0; j<=B; j++) {
				for(int k=0; k<=C; k++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				}
			}
		} for(int j=0; j<=B; j++) {
				for(int k=0; k<=C; k++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				}
			} int j=0; int j=0; j 0 j<=B j B j++ j++ j {
				for(int k=0; k<=C; k++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				}
			} {
				for(int k=0; k<=C; k++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				}
			} for(int k=0; k<=C; k++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				} int k=0; int k=0; k 0 k<=C k C k++ k++ k {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				} {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				} price[i][j][k] = 500*i + 100*j + 50*k price[i][j][k] price[i][j] price[i] price i j k 500*i + 100*j + 50*k 500*i + 100*j + 50*k 500*i 500 i 100*j 100 j 50*k 50 k if(price[i][j][k] == X) {
						way += 1;
					} price[i][j][k] == X price[i][j][k] price[i][j] price[i] price i j k X {
						way += 1;
					} way += 1 way 1 System.out.println(way) System.out.println System.out System System.out way 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[][][] price = new int[A+1][B+1][C+1];

		int way = 0;

		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				for(int k=0; k<=C; k++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				}
			}
		}

		System.out.println(way);
	}

} 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[][][] price = new int[A+1][B+1][C+1];

		int way = 0;

		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				for(int k=0; k<=C; k++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				}
			}
		}

		System.out.println(way);
	}

} 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[][][] price = new int[A+1][B+1][C+1];

		int way = 0;

		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				for(int k=0; k<=C; k++) {
					price[i][j][k] = 500*i + 100*j + 50*k;
					if(price[i][j][k] == X) {
						way += 1;
					}
				}
			}
		}

		System.out.println(way);
	}

}
