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.close();
		int count = 0;
		
		for(int a = 0; a <= A; a++) {
			for(int b = 0; b <= B; b++) {
				for(int c = 0; c <= C; c++) {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				}
			}
		}
		System.out.println(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.close();
		int count = 0;
		
		for(int a = 0; a <= A; a++) {
			for(int b = 0; b <= B; b++) {
				for(int c = 0; c <= C; c++) {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				}
			}
		}
		System.out.println(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.close();
		int count = 0;
		
		for(int a = 0; a <= A; a++) {
			for(int b = 0; b <= B; b++) {
				for(int c = 0; c <= C; c++) {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				}
			}
		}
		System.out.println(count);
	} main {
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt();
		int B = sc.nextInt();
		int C = sc.nextInt();
		int X = sc.nextInt();
		sc.close();
		int count = 0;
		
		for(int a = 0; a <= A; a++) {
			for(int b = 0; b <= B; b++) {
				for(int c = 0; c <= C; c++) {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				}
			}
		}
		System.out.println(count);
	} 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 int count = 0; count 0 for(int a = 0; a <= A; a++) {
			for(int b = 0; b <= B; b++) {
				for(int c = 0; c <= C; c++) {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				}
			}
		} int a = 0; int a = 0; a 0 a <= A a A a++ a++ a {
			for(int b = 0; b <= B; b++) {
				for(int c = 0; c <= C; c++) {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				}
			}
		} {
			for(int b = 0; b <= B; b++) {
				for(int c = 0; c <= C; c++) {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				}
			}
		} for(int b = 0; b <= B; b++) {
				for(int c = 0; c <= C; c++) {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				}
			} int b = 0; int b = 0; b 0 b <= B b B b++ b++ b {
				for(int c = 0; c <= C; c++) {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				}
			} {
				for(int c = 0; c <= C; c++) {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				}
			} for(int c = 0; c <= C; c++) {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				} int c = 0; int c = 0; c 0 c <= C c C c++ c++ c {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				} {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				} if(X == a*500 + b*100 + c*50) {
						count++;
					} X == a*500 + b*100 + c*50 X a*500 + b*100 + c*50 a*500 + b*100 + c*50 a*500 a 500 b*100 b 100 c*50 c 50 {
						count++;
					} count++ count System.out.println(count) System.out.println System.out System System.out count String arg[] arg
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.close();
		int count = 0;
		
		for(int a = 0; a <= A; a++) {
			for(int b = 0; b <= B; b++) {
				for(int c = 0; c <= C; c++) {
					if(X == a*500 + b*100 + c*50) {
						count++;
					}
				}
			}
		}
		System.out.println(count);
	}
}