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 count = 0;
		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				int sum = i*500 + j*100;
				int k = (X - sum) / 50;
				if(k > C || k < 0) continue;
				count++;
			}
		}

		System.out.println(count);
	}

	public static void print(Object o) {
		System.out.print(o);
	}

	public static void println(Object o) {
		System.out.println(o);
	}
} 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 count = 0;
		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				int sum = i*500 + j*100;
				int k = (X - sum) / 50;
				if(k > C || k < 0) continue;
				count++;
			}
		}

		System.out.println(count);
	}

	public static void print(Object o) {
		System.out.print(o);
	}

	public static void println(Object o) {
		System.out.println(o);
	}
} 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 count = 0;
		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				int sum = i*500 + j*100;
				int k = (X - sum) / 50;
				if(k > C || k < 0) continue;
				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();

		int count = 0;
		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				int sum = i*500 + j*100;
				int k = (X - sum) / 50;
				if(k > C || k < 0) continue;
				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 int count = 0; count 0 for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				int sum = i*500 + j*100;
				int k = (X - sum) / 50;
				if(k > C || k < 0) continue;
				count++;
			}
		} int i=0; int i=0; i 0 i<=A i A i++ i++ i {
			for(int j=0; j<=B; j++) {
				int sum = i*500 + j*100;
				int k = (X - sum) / 50;
				if(k > C || k < 0) continue;
				count++;
			}
		} {
			for(int j=0; j<=B; j++) {
				int sum = i*500 + j*100;
				int k = (X - sum) / 50;
				if(k > C || k < 0) continue;
				count++;
			}
		} for(int j=0; j<=B; j++) {
				int sum = i*500 + j*100;
				int k = (X - sum) / 50;
				if(k > C || k < 0) continue;
				count++;
			} int j=0; int j=0; j 0 j<=B j B j++ j++ j {
				int sum = i*500 + j*100;
				int k = (X - sum) / 50;
				if(k > C || k < 0) continue;
				count++;
			} {
				int sum = i*500 + j*100;
				int k = (X - sum) / 50;
				if(k > C || k < 0) continue;
				count++;
			} int sum = i*500 + j*100; sum i*500 + j*100 i*500 i 500 j*100 j 100 int k = (X - sum) / 50; k (X - sum) / 50 (X - sum) X sum 50 if(k > C || k < 0) continue; k > C || k < 0 k > C k C k < 0 k 0 continue; count++ count System.out.println(count) System.out.println System.out System System.out count String[] args args public static void print(Object o) {
		System.out.print(o);
	} print {
		System.out.print(o);
	} System.out.print(o) System.out.print System.out System System.out o Object o o public static void println(Object o) {
		System.out.println(o);
	} println {
		System.out.println(o);
	} System.out.println(o) System.out.println System.out System System.out o Object o o 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 count = 0;
		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				int sum = i*500 + j*100;
				int k = (X - sum) / 50;
				if(k > C || k < 0) continue;
				count++;
			}
		}

		System.out.println(count);
	}

	public static void print(Object o) {
		System.out.print(o);
	}

	public static void println(Object o) {
		System.out.println(o);
	}
} 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 count = 0;
		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				int sum = i*500 + j*100;
				int k = (X - sum) / 50;
				if(k > C || k < 0) continue;
				count++;
			}
		}

		System.out.println(count);
	}

	public static void print(Object o) {
		System.out.print(o);
	}

	public static void println(Object o) {
		System.out.println(o);
	}
} 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 count = 0;
		for(int i=0; i<=A; i++) {
			for(int j=0; j<=B; j++) {
				int sum = i*500 + j*100;
				int k = (X - sum) / 50;
				if(k > C || k < 0) continue;
				count++;
			}
		}

		System.out.println(count);
	}

	public static void print(Object o) {
		System.out.print(o);
	}

	public static void println(Object o) {
		System.out.println(o);
	}
}