
import java.util.ArrayList;
import java.util.List;
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 ans = 0;
		
		for(int i = 0; i <= a; i++) {
			for(int k = 0; k <= b; k++) {
				for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				}
			}
		}
		
		System.out.println(ans);
	}

} import java.util.ArrayList; ArrayList java.util import java.util.List; List java.util 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 ans = 0;
		
		for(int i = 0; i <= a; i++) {
			for(int k = 0; k <= b; k++) {
				for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				}
			}
		}
		
		System.out.println(ans);
	}

} 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 ans = 0;
		
		for(int i = 0; i <= a; i++) {
			for(int k = 0; k <= b; k++) {
				for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				}
			}
		}
		
		System.out.println(ans);
	} main {
		
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		
		int x = sc.nextInt();
		
		int ans = 0;
		
		for(int i = 0; i <= a; i++) {
			for(int k = 0; k <= b; k++) {
				for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				}
			}
		}
		
		System.out.println(ans);
	} 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 ans = 0; ans 0 for(int i = 0; i <= a; i++) {
			for(int k = 0; k <= b; k++) {
				for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				}
			}
		} int i = 0; int i = 0; i 0 i <= a i a i++ i++ i {
			for(int k = 0; k <= b; k++) {
				for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				}
			}
		} {
			for(int k = 0; k <= b; k++) {
				for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				}
			}
		} for(int k = 0; k <= b; k++) {
				for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				}
			} int k = 0; int k = 0; k 0 k <= b k b k++ k++ k {
				for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				}
			} {
				for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				}
			} for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				} int j = 0; int j = 0; j 0 j <= c j c j++ j++ j {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				} {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				} if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					} (i * 500) + (k * 100) + (j * 50) == x (i * 500) + (k * 100) + (j * 50) (i * 500) + (k * 100) + (j * 50) (i * 500) i 500 (k * 100) k 100 (j * 50) j 50 x {
						ans++;
					} ans++ ans System.out.println(ans) System.out.println System.out System System.out ans 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 ans = 0;
		
		for(int i = 0; i <= a; i++) {
			for(int k = 0; k <= b; k++) {
				for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				}
			}
		}
		
		System.out.println(ans);
	}

} 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 ans = 0;
		
		for(int i = 0; i <= a; i++) {
			for(int k = 0; k <= b; k++) {
				for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				}
			}
		}
		
		System.out.println(ans);
	}

} Main

import java.util.ArrayList;
import java.util.List;
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 ans = 0;
		
		for(int i = 0; i <= a; i++) {
			for(int k = 0; k <= b; k++) {
				for(int j = 0; j <= c; j++) {
					if((i * 500) + (k * 100) + (j * 50) == x) {
						ans++;
					}
				}
			}
		}
		
		System.out.println(ans);
	}

}
