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