import java.io.*;
import java.util.*;
import java.math.BigInteger;
public class Main {

static long[] list=new long[87];

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

   String nyuA=sc.nextLine();
  String nyuB=sc.nextLine(); 
   String nyuC=sc.nextLine();
  String nyuX=sc.nextLine();


//   String[] s=sc.nextLine().split(" ");
 //    String[] t=sc.nextLine().split("");

int A=Integer.parseInt(nyuA);
int B=Integer.parseInt(nyuB);
int C=Integer.parseInt(nyuC);
int X=Integer.parseInt(nyuX);
int count=0;
for(int i=0;i<=A;i++){
for(int j=0;j<=B;j++){
for(int k=0;k<=C;k++){
if(500*i+100*j+50*k==X){
count++;
}
}
}
}

System.out.println(count);



}

}
 import java.io.*; io.* java import java.util.*; util.* java import java.math.BigInteger; BigInteger java.math public class Main {

static long[] list=new long[87];

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

   String nyuA=sc.nextLine();
  String nyuB=sc.nextLine(); 
   String nyuC=sc.nextLine();
  String nyuX=sc.nextLine();


//   String[] s=sc.nextLine().split(" ");
 //    String[] t=sc.nextLine().split("");

int A=Integer.parseInt(nyuA);
int B=Integer.parseInt(nyuB);
int C=Integer.parseInt(nyuC);
int X=Integer.parseInt(nyuX);
int count=0;
for(int i=0;i<=A;i++){
for(int j=0;j<=B;j++){
for(int k=0;k<=C;k++){
if(500*i+100*j+50*k==X){
count++;
}
}
}
}

System.out.println(count);



}

} Main static long[] list=new long[87]; list new long[87] 87 public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

   String nyuA=sc.nextLine();
  String nyuB=sc.nextLine(); 
   String nyuC=sc.nextLine();
  String nyuX=sc.nextLine();


//   String[] s=sc.nextLine().split(" ");
 //    String[] t=sc.nextLine().split("");

int A=Integer.parseInt(nyuA);
int B=Integer.parseInt(nyuB);
int C=Integer.parseInt(nyuC);
int X=Integer.parseInt(nyuX);
int count=0;
for(int i=0;i<=A;i++){
for(int j=0;j<=B;j++){
for(int k=0;k<=C;k++){
if(500*i+100*j+50*k==X){
count++;
}
}
}
}

System.out.println(count);



} main {
		Scanner sc = new Scanner(System.in);

   String nyuA=sc.nextLine();
  String nyuB=sc.nextLine(); 
   String nyuC=sc.nextLine();
  String nyuX=sc.nextLine();


//   String[] s=sc.nextLine().split(" ");
 //    String[] t=sc.nextLine().split("");

int A=Integer.parseInt(nyuA);
int B=Integer.parseInt(nyuB);
int C=Integer.parseInt(nyuC);
int X=Integer.parseInt(nyuX);
int count=0;
for(int i=0;i<=A;i++){
for(int j=0;j<=B;j++){
for(int k=0;k<=C;k++){
if(500*i+100*j+50*k==X){
count++;
}
}
}
}

System.out.println(count);



} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String nyuA=sc.nextLine(); nyuA sc.nextLine() sc.nextLine sc String nyuB=sc.nextLine(); nyuB sc.nextLine() sc.nextLine sc String nyuC=sc.nextLine(); nyuC sc.nextLine() sc.nextLine sc String nyuX=sc.nextLine(); nyuX sc.nextLine() sc.nextLine sc int A=Integer.parseInt(nyuA); A Integer.parseInt(nyuA) Integer.parseInt Integer nyuA int B=Integer.parseInt(nyuB); B Integer.parseInt(nyuB) Integer.parseInt Integer nyuB int C=Integer.parseInt(nyuC); C Integer.parseInt(nyuC) Integer.parseInt Integer nyuC int X=Integer.parseInt(nyuX); X Integer.parseInt(nyuX) Integer.parseInt Integer nyuX int count=0; count 0 for(int i=0;i<=A;i++){
for(int j=0;j<=B;j++){
for(int k=0;k<=C;k++){
if(500*i+100*j+50*k==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++){
if(500*i+100*j+50*k==X){
count++;
}
}
}
} {
for(int j=0;j<=B;j++){
for(int k=0;k<=C;k++){
if(500*i+100*j+50*k==X){
count++;
}
}
}
} for(int j=0;j<=B;j++){
for(int k=0;k<=C;k++){
if(500*i+100*j+50*k==X){
count++;
}
}
} int j=0; int j=0; j 0 j<=B j B j++ j++ j {
for(int k=0;k<=C;k++){
if(500*i+100*j+50*k==X){
count++;
}
}
} {
for(int k=0;k<=C;k++){
if(500*i+100*j+50*k==X){
count++;
}
}
} for(int k=0;k<=C;k++){
if(500*i+100*j+50*k==X){
count++;
}
} int k=0; int k=0; k 0 k<=C k C k++ k++ k {
if(500*i+100*j+50*k==X){
count++;
}
} {
if(500*i+100*j+50*k==X){
count++;
}
} if(500*i+100*j+50*k==X){
count++;
} 500*i+100*j+50*k==X 500*i+100*j+50*k 500*i+100*j+50*k 500*i 500 i 100*j 100 j 50*k 50 k X {
count++;
} count++ count System.out.println(count) System.out.println System.out System System.out count String[] args args public class Main {

static long[] list=new long[87];

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

   String nyuA=sc.nextLine();
  String nyuB=sc.nextLine(); 
   String nyuC=sc.nextLine();
  String nyuX=sc.nextLine();


//   String[] s=sc.nextLine().split(" ");
 //    String[] t=sc.nextLine().split("");

int A=Integer.parseInt(nyuA);
int B=Integer.parseInt(nyuB);
int C=Integer.parseInt(nyuC);
int X=Integer.parseInt(nyuX);
int count=0;
for(int i=0;i<=A;i++){
for(int j=0;j<=B;j++){
for(int k=0;k<=C;k++){
if(500*i+100*j+50*k==X){
count++;
}
}
}
}

System.out.println(count);



}

} public class Main {

static long[] list=new long[87];

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

   String nyuA=sc.nextLine();
  String nyuB=sc.nextLine(); 
   String nyuC=sc.nextLine();
  String nyuX=sc.nextLine();


//   String[] s=sc.nextLine().split(" ");
 //    String[] t=sc.nextLine().split("");

int A=Integer.parseInt(nyuA);
int B=Integer.parseInt(nyuB);
int C=Integer.parseInt(nyuC);
int X=Integer.parseInt(nyuX);
int count=0;
for(int i=0;i<=A;i++){
for(int j=0;j<=B;j++){
for(int k=0;k<=C;k++){
if(500*i+100*j+50*k==X){
count++;
}
}
}
}

System.out.println(count);



}

} Main
import java.io.*;
import java.util.*;
import java.math.BigInteger;
public class Main {

static long[] list=new long[87];

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

   String nyuA=sc.nextLine();
  String nyuB=sc.nextLine(); 
   String nyuC=sc.nextLine();
  String nyuX=sc.nextLine();


//   String[] s=sc.nextLine().split(" ");
 //    String[] t=sc.nextLine().split("");

int A=Integer.parseInt(nyuA);
int B=Integer.parseInt(nyuB);
int C=Integer.parseInt(nyuC);
int X=Integer.parseInt(nyuX);
int count=0;
for(int i=0;i<=A;i++){
for(int j=0;j<=B;j++){
for(int k=0;k<=C;k++){
if(500*i+100*j+50*k==X){
count++;
}
}
}
}

System.out.println(count);



}

}

