import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt(), b = sc.nextInt(),c=sc.nextInt();
		int x=sc.nextInt();//,k=sc.nextInt();
		long sum=0,count=0,flag=0,max=-999999,min=99999;
		long[] array=new long[a];
		//String s=sc.next();//,t=sc.next();
		String buff;
		//String[] arrays = new String[a];
		for(int i=0;i<=a;i++) {
			for(int j=0;j<=b;j++) {
				for(int k=0;k<=c;k++) {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				}
			}
		}

		System.out.println(count);

	}
	public static int sample(int n) {
		return n;
	}

} 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(), b = sc.nextInt(),c=sc.nextInt();
		int x=sc.nextInt();//,k=sc.nextInt();
		long sum=0,count=0,flag=0,max=-999999,min=99999;
		long[] array=new long[a];
		//String s=sc.next();//,t=sc.next();
		String buff;
		//String[] arrays = new String[a];
		for(int i=0;i<=a;i++) {
			for(int j=0;j<=b;j++) {
				for(int k=0;k<=c;k++) {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				}
			}
		}

		System.out.println(count);

	}
	public static int sample(int n) {
		return n;
	}

} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt(), b = sc.nextInt(),c=sc.nextInt();
		int x=sc.nextInt();//,k=sc.nextInt();
		long sum=0,count=0,flag=0,max=-999999,min=99999;
		long[] array=new long[a];
		//String s=sc.next();//,t=sc.next();
		String buff;
		//String[] arrays = new String[a];
		for(int i=0;i<=a;i++) {
			for(int j=0;j<=b;j++) {
				for(int k=0;k<=c;k++) {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				}
			}
		}

		System.out.println(count);

	} main {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt(), b = sc.nextInt(),c=sc.nextInt();
		int x=sc.nextInt();//,k=sc.nextInt();
		long sum=0,count=0,flag=0,max=-999999,min=99999;
		long[] array=new long[a];
		//String s=sc.next();//,t=sc.next();
		String buff;
		//String[] arrays = new String[a];
		for(int i=0;i<=a;i++) {
			for(int j=0;j<=b;j++) {
				for(int k=0;k<=c;k++) {
					sum=i*500+j*100+50*k;
					if(sum==x)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 b = sc.nextInt() b sc.nextInt() sc.nextInt sc c=sc.nextInt(); c sc.nextInt() sc.nextInt sc int x=sc.nextInt(); x sc.nextInt() sc.nextInt sc long sum=0 sum 0 count=0 count 0 flag=0 flag 0 max=-999999 max -999999 999999 min=99999; min 99999 long[] array=new long[a]; array new long[a] a String buff; buff for(int i=0;i<=a;i++) {
			for(int j=0;j<=b;j++) {
				for(int k=0;k<=c;k++) {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				}
			}
		} 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++) {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				}
			}
		} {
			for(int j=0;j<=b;j++) {
				for(int k=0;k<=c;k++) {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				}
			}
		} for(int j=0;j<=b;j++) {
				for(int k=0;k<=c;k++) {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				}
			} int j=0; int j=0; j 0 j<=b j b j++ j++ j {
				for(int k=0;k<=c;k++) {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				}
			} {
				for(int k=0;k<=c;k++) {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				}
			} for(int k=0;k<=c;k++) {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				} int k=0; int k=0; k 0 k<=c k c k++ k++ k {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				} {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				} sum=i*500+j*100+50*k sum i*500+j*100+50*k i*500+j*100+50*k i*500 i 500 j*100 j 100 50*k 50 k if(sum==x)count++; sum==x sum x count++ count System.out.println(count) System.out.println System.out System System.out count String[] args args public static int sample(int n) {
		return n;
	} sample {
		return n;
	} return n; n int n n public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt(), b = sc.nextInt(),c=sc.nextInt();
		int x=sc.nextInt();//,k=sc.nextInt();
		long sum=0,count=0,flag=0,max=-999999,min=99999;
		long[] array=new long[a];
		//String s=sc.next();//,t=sc.next();
		String buff;
		//String[] arrays = new String[a];
		for(int i=0;i<=a;i++) {
			for(int j=0;j<=b;j++) {
				for(int k=0;k<=c;k++) {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				}
			}
		}

		System.out.println(count);

	}
	public static int sample(int n) {
		return n;
	}

} public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt(), b = sc.nextInt(),c=sc.nextInt();
		int x=sc.nextInt();//,k=sc.nextInt();
		long sum=0,count=0,flag=0,max=-999999,min=99999;
		long[] array=new long[a];
		//String s=sc.next();//,t=sc.next();
		String buff;
		//String[] arrays = new String[a];
		for(int i=0;i<=a;i++) {
			for(int j=0;j<=b;j++) {
				for(int k=0;k<=c;k++) {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				}
			}
		}

		System.out.println(count);

	}
	public static int sample(int n) {
		return n;
	}

} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt(), b = sc.nextInt(),c=sc.nextInt();
		int x=sc.nextInt();//,k=sc.nextInt();
		long sum=0,count=0,flag=0,max=-999999,min=99999;
		long[] array=new long[a];
		//String s=sc.next();//,t=sc.next();
		String buff;
		//String[] arrays = new String[a];
		for(int i=0;i<=a;i++) {
			for(int j=0;j<=b;j++) {
				for(int k=0;k<=c;k++) {
					sum=i*500+j*100+50*k;
					if(sum==x)count++;
				}
			}
		}

		System.out.println(count);

	}
	public static int sample(int n) {
		return n;
	}

}
