	import 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 ret = 0;
			
			for (int a=0;a<=A;a++) {
				for (int b=0;b<=B;b++) {
					int Y = X - 500*a - 100*b;
					for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					}
				}
			}
			
			
			System.out.println(ret);
			
			sc.close();
		}
		
	} import java.util.*; util.* java 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 ret = 0;
			
			for (int a=0;a<=A;a++) {
				for (int b=0;b<=B;b++) {
					int Y = X - 500*a - 100*b;
					for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					}
				}
			}
			
			
			System.out.println(ret);
			
			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 ret = 0;
			
			for (int a=0;a<=A;a++) {
				for (int b=0;b<=B;b++) {
					int Y = X - 500*a - 100*b;
					for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					}
				}
			}
			
			
			System.out.println(ret);
			
			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 ret = 0;
			
			for (int a=0;a<=A;a++) {
				for (int b=0;b<=B;b++) {
					int Y = X - 500*a - 100*b;
					for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					}
				}
			}
			
			
			System.out.println(ret);
			
			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 ret = 0; ret 0 for (int a=0;a<=A;a++) {
				for (int b=0;b<=B;b++) {
					int Y = X - 500*a - 100*b;
					for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					}
				}
			} int a=0; int a=0; a 0 a<=A a A a++ a++ a {
				for (int b=0;b<=B;b++) {
					int Y = X - 500*a - 100*b;
					for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					}
				}
			} {
				for (int b=0;b<=B;b++) {
					int Y = X - 500*a - 100*b;
					for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					}
				}
			} for (int b=0;b<=B;b++) {
					int Y = X - 500*a - 100*b;
					for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					}
				} int b=0; int b=0; b 0 b<=B b B b++ b++ b {
					int Y = X - 500*a - 100*b;
					for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					}
				} {
					int Y = X - 500*a - 100*b;
					for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					}
				} int Y = X - 500*a - 100*b; Y X - 500*a - 100*b X - 500*a - 100*b X 500*a 500 a 100*b 100 b for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					} int c=0; int c=0; c 0 c<=C c C c++ c++ c {
						if (Y==50*c) {
							ret++;
						}
					} {
						if (Y==50*c) {
							ret++;
						}
					} if (Y==50*c) {
							ret++;
						} Y==50*c Y 50*c 50 c {
							ret++;
						} ret++ ret System.out.println(ret) System.out.println System.out System System.out ret 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 ret = 0;
			
			for (int a=0;a<=A;a++) {
				for (int b=0;b<=B;b++) {
					int Y = X - 500*a - 100*b;
					for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					}
				}
			}
			
			
			System.out.println(ret);
			
			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 ret = 0;
			
			for (int a=0;a<=A;a++) {
				for (int b=0;b<=B;b++) {
					int Y = X - 500*a - 100*b;
					for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					}
				}
			}
			
			
			System.out.println(ret);
			
			sc.close();
		}
		
	} Main
	import 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 ret = 0;
			
			for (int a=0;a<=A;a++) {
				for (int b=0;b<=B;b++) {
					int Y = X - 500*a - 100*b;
					for (int c=0;c<=C;c++) {
						if (Y==50*c) {
							ret++;
						}
					}
				}
			}
			
			
			System.out.println(ret);
			
			sc.close();
		}
		
	}
