import java.util.Scanner;  
class Main 
{
  public static void main(String[] args) 
  {
    Scanner input=new Scanner(System.in);
    int a500=input.nextInt();
    int a100=input.nextInt();
    int a50=input.nextInt();
    int money=input.nextInt();
    int count=0;
    //case1
    int temp=0;
    for(int i=1;i<=a50;i++)
    {
      temp=temp+50;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //case2
    temp=0;
    for(int i=1;i<=a100;i++)
    {
      temp=temp+100;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //case3
    temp=0;
    for(int i=1;i<=a500;i++)
    {
      temp=temp+500;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //listing50
    temp=0;
    int[] list50=new int[a50];
    for(int i=0;i<a50;i++)
    {
     temp=temp+50;
     list50[i]=temp;
    }
    //listing100
    temp=0;
    int[] list100=new int[a100];
    for(int i=0;i<a100;i++)
    {
     temp=temp+100;
     list100[i]=temp;
    }
    //listing500
    temp=0;
    int[] list500=new int[a500];
    for(int i=0;i<a500;i++)
    {
     temp=temp+500;
     list500[i]=temp;
    }
    //case4  50_100
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a100;k++)
      {
      temp=list50[i]+list100[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case5  50_500
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a500;k++)
      {
      temp=list50[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case6  100_500
    temp=0;
    for(int i=0;i<a100;i++)
    {
      for(int k=0;k<a500;k++)
      {
      temp=list100[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case7  50_100_500
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a100;k++)
      {
        for(int l=0;l<a500;l++)
        {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        }
      }
    }
    System.out.println(count);
  }
} import java.util.Scanner; Scanner java.util class Main 
{
  public static void main(String[] args) 
  {
    Scanner input=new Scanner(System.in);
    int a500=input.nextInt();
    int a100=input.nextInt();
    int a50=input.nextInt();
    int money=input.nextInt();
    int count=0;
    //case1
    int temp=0;
    for(int i=1;i<=a50;i++)
    {
      temp=temp+50;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //case2
    temp=0;
    for(int i=1;i<=a100;i++)
    {
      temp=temp+100;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //case3
    temp=0;
    for(int i=1;i<=a500;i++)
    {
      temp=temp+500;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //listing50
    temp=0;
    int[] list50=new int[a50];
    for(int i=0;i<a50;i++)
    {
     temp=temp+50;
     list50[i]=temp;
    }
    //listing100
    temp=0;
    int[] list100=new int[a100];
    for(int i=0;i<a100;i++)
    {
     temp=temp+100;
     list100[i]=temp;
    }
    //listing500
    temp=0;
    int[] list500=new int[a500];
    for(int i=0;i<a500;i++)
    {
     temp=temp+500;
     list500[i]=temp;
    }
    //case4  50_100
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a100;k++)
      {
      temp=list50[i]+list100[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case5  50_500
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a500;k++)
      {
      temp=list50[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case6  100_500
    temp=0;
    for(int i=0;i<a100;i++)
    {
      for(int k=0;k<a500;k++)
      {
      temp=list100[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case7  50_100_500
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a100;k++)
      {
        for(int l=0;l<a500;l++)
        {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        }
      }
    }
    System.out.println(count);
  }
} Main public static void main(String[] args) 
  {
    Scanner input=new Scanner(System.in);
    int a500=input.nextInt();
    int a100=input.nextInt();
    int a50=input.nextInt();
    int money=input.nextInt();
    int count=0;
    //case1
    int temp=0;
    for(int i=1;i<=a50;i++)
    {
      temp=temp+50;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //case2
    temp=0;
    for(int i=1;i<=a100;i++)
    {
      temp=temp+100;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //case3
    temp=0;
    for(int i=1;i<=a500;i++)
    {
      temp=temp+500;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //listing50
    temp=0;
    int[] list50=new int[a50];
    for(int i=0;i<a50;i++)
    {
     temp=temp+50;
     list50[i]=temp;
    }
    //listing100
    temp=0;
    int[] list100=new int[a100];
    for(int i=0;i<a100;i++)
    {
     temp=temp+100;
     list100[i]=temp;
    }
    //listing500
    temp=0;
    int[] list500=new int[a500];
    for(int i=0;i<a500;i++)
    {
     temp=temp+500;
     list500[i]=temp;
    }
    //case4  50_100
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a100;k++)
      {
      temp=list50[i]+list100[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case5  50_500
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a500;k++)
      {
      temp=list50[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case6  100_500
    temp=0;
    for(int i=0;i<a100;i++)
    {
      for(int k=0;k<a500;k++)
      {
      temp=list100[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case7  50_100_500
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a100;k++)
      {
        for(int l=0;l<a500;l++)
        {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        }
      }
    }
    System.out.println(count);
  } main {
    Scanner input=new Scanner(System.in);
    int a500=input.nextInt();
    int a100=input.nextInt();
    int a50=input.nextInt();
    int money=input.nextInt();
    int count=0;
    //case1
    int temp=0;
    for(int i=1;i<=a50;i++)
    {
      temp=temp+50;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //case2
    temp=0;
    for(int i=1;i<=a100;i++)
    {
      temp=temp+100;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //case3
    temp=0;
    for(int i=1;i<=a500;i++)
    {
      temp=temp+500;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //listing50
    temp=0;
    int[] list50=new int[a50];
    for(int i=0;i<a50;i++)
    {
     temp=temp+50;
     list50[i]=temp;
    }
    //listing100
    temp=0;
    int[] list100=new int[a100];
    for(int i=0;i<a100;i++)
    {
     temp=temp+100;
     list100[i]=temp;
    }
    //listing500
    temp=0;
    int[] list500=new int[a500];
    for(int i=0;i<a500;i++)
    {
     temp=temp+500;
     list500[i]=temp;
    }
    //case4  50_100
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a100;k++)
      {
      temp=list50[i]+list100[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case5  50_500
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a500;k++)
      {
      temp=list50[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case6  100_500
    temp=0;
    for(int i=0;i<a100;i++)
    {
      for(int k=0;k<a500;k++)
      {
      temp=list100[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case7  50_100_500
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a100;k++)
      {
        for(int l=0;l<a500;l++)
        {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        }
      }
    }
    System.out.println(count);
  } Scanner input=new Scanner(System.in); input new Scanner(System.in) int a500=input.nextInt(); a500 input.nextInt() input.nextInt input int a100=input.nextInt(); a100 input.nextInt() input.nextInt input int a50=input.nextInt(); a50 input.nextInt() input.nextInt input int money=input.nextInt(); money input.nextInt() input.nextInt input int count=0; count 0 int temp=0; temp 0 for(int i=1;i<=a50;i++)
    {
      temp=temp+50;
      if(temp==money)
      {
        count++;
        break;
      }
    } int i=1; int i=1; i 1 i<=a50 i a50 i++ i++ i {
      temp=temp+50;
      if(temp==money)
      {
        count++;
        break;
      }
    } {
      temp=temp+50;
      if(temp==money)
      {
        count++;
        break;
      }
    } temp=temp+50 temp temp+50 temp 50 if(temp==money)
      {
        count++;
        break;
      } temp==money temp money {
        count++;
        break;
      } count++ count break; temp=0 temp 0 for(int i=1;i<=a100;i++)
    {
      temp=temp+100;
      if(temp==money)
      {
        count++;
        break;
      }
    } int i=1; int i=1; i 1 i<=a100 i a100 i++ i++ i {
      temp=temp+100;
      if(temp==money)
      {
        count++;
        break;
      }
    } {
      temp=temp+100;
      if(temp==money)
      {
        count++;
        break;
      }
    } temp=temp+100 temp temp+100 temp 100 if(temp==money)
      {
        count++;
        break;
      } temp==money temp money {
        count++;
        break;
      } count++ count break; temp=0 temp 0 for(int i=1;i<=a500;i++)
    {
      temp=temp+500;
      if(temp==money)
      {
        count++;
        break;
      }
    } int i=1; int i=1; i 1 i<=a500 i a500 i++ i++ i {
      temp=temp+500;
      if(temp==money)
      {
        count++;
        break;
      }
    } {
      temp=temp+500;
      if(temp==money)
      {
        count++;
        break;
      }
    } temp=temp+500 temp temp+500 temp 500 if(temp==money)
      {
        count++;
        break;
      } temp==money temp money {
        count++;
        break;
      } count++ count break; temp=0 temp 0 int[] list50=new int[a50]; list50 new int[a50] a50 for(int i=0;i<a50;i++)
    {
     temp=temp+50;
     list50[i]=temp;
    } int i=0; int i=0; i 0 i<a50 i a50 i++ i++ i {
     temp=temp+50;
     list50[i]=temp;
    } {
     temp=temp+50;
     list50[i]=temp;
    } temp=temp+50 temp temp+50 temp 50 list50[i]=temp list50[i] list50 i temp temp=0 temp 0 int[] list100=new int[a100]; list100 new int[a100] a100 for(int i=0;i<a100;i++)
    {
     temp=temp+100;
     list100[i]=temp;
    } int i=0; int i=0; i 0 i<a100 i a100 i++ i++ i {
     temp=temp+100;
     list100[i]=temp;
    } {
     temp=temp+100;
     list100[i]=temp;
    } temp=temp+100 temp temp+100 temp 100 list100[i]=temp list100[i] list100 i temp temp=0 temp 0 int[] list500=new int[a500]; list500 new int[a500] a500 for(int i=0;i<a500;i++)
    {
     temp=temp+500;
     list500[i]=temp;
    } int i=0; int i=0; i 0 i<a500 i a500 i++ i++ i {
     temp=temp+500;
     list500[i]=temp;
    } {
     temp=temp+500;
     list500[i]=temp;
    } temp=temp+500 temp temp+500 temp 500 list500[i]=temp list500[i] list500 i temp temp=0 temp 0 for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a100;k++)
      {
      temp=list50[i]+list100[k];
      if(temp==money)
      {
        count++;
      }
      }
    } int i=0; int i=0; i 0 i<a50 i a50 i++ i++ i {
      for(int k=0;k<a100;k++)
      {
      temp=list50[i]+list100[k];
      if(temp==money)
      {
        count++;
      }
      }
    } {
      for(int k=0;k<a100;k++)
      {
      temp=list50[i]+list100[k];
      if(temp==money)
      {
        count++;
      }
      }
    } for(int k=0;k<a100;k++)
      {
      temp=list50[i]+list100[k];
      if(temp==money)
      {
        count++;
      }
      } int k=0; int k=0; k 0 k<a100 k a100 k++ k++ k {
      temp=list50[i]+list100[k];
      if(temp==money)
      {
        count++;
      }
      } {
      temp=list50[i]+list100[k];
      if(temp==money)
      {
        count++;
      }
      } temp=list50[i]+list100[k] temp list50[i]+list100[k] list50[i] list50 i list100[k] list100 k if(temp==money)
      {
        count++;
      } temp==money temp money {
        count++;
      } count++ count temp=0 temp 0 for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a500;k++)
      {
      temp=list50[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    } int i=0; int i=0; i 0 i<a50 i a50 i++ i++ i {
      for(int k=0;k<a500;k++)
      {
      temp=list50[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    } {
      for(int k=0;k<a500;k++)
      {
      temp=list50[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    } for(int k=0;k<a500;k++)
      {
      temp=list50[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      } int k=0; int k=0; k 0 k<a500 k a500 k++ k++ k {
      temp=list50[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      } {
      temp=list50[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      } temp=list50[i]+list500[k] temp list50[i]+list500[k] list50[i] list50 i list500[k] list500 k if(temp==money)
      {
        count++;
      } temp==money temp money {
        count++;
      } count++ count temp=0 temp 0 for(int i=0;i<a100;i++)
    {
      for(int k=0;k<a500;k++)
      {
      temp=list100[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    } int i=0; int i=0; i 0 i<a100 i a100 i++ i++ i {
      for(int k=0;k<a500;k++)
      {
      temp=list100[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    } {
      for(int k=0;k<a500;k++)
      {
      temp=list100[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    } for(int k=0;k<a500;k++)
      {
      temp=list100[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      } int k=0; int k=0; k 0 k<a500 k a500 k++ k++ k {
      temp=list100[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      } {
      temp=list100[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      } temp=list100[i]+list500[k] temp list100[i]+list500[k] list100[i] list100 i list500[k] list500 k if(temp==money)
      {
        count++;
      } temp==money temp money {
        count++;
      } count++ count temp=0 temp 0 for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a100;k++)
      {
        for(int l=0;l<a500;l++)
        {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        }
      }
    } int i=0; int i=0; i 0 i<a50 i a50 i++ i++ i {
      for(int k=0;k<a100;k++)
      {
        for(int l=0;l<a500;l++)
        {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        }
      }
    } {
      for(int k=0;k<a100;k++)
      {
        for(int l=0;l<a500;l++)
        {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        }
      }
    } for(int k=0;k<a100;k++)
      {
        for(int l=0;l<a500;l++)
        {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        }
      } int k=0; int k=0; k 0 k<a100 k a100 k++ k++ k {
        for(int l=0;l<a500;l++)
        {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        }
      } {
        for(int l=0;l<a500;l++)
        {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        }
      } for(int l=0;l<a500;l++)
        {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        } int l=0; int l=0; l 0 l<a500 l a500 l++ l++ l {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        } {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        } temp=list50[i]+list100[k]+list500[l] temp list50[i]+list100[k]+list500[l] list50[i]+list100[k]+list500[l] list50[i] list50 i list100[k] list100 k list500[l] list500 l if(temp==money)
          {
            count++;
          } temp==money temp money {
            count++;
          } count++ count System.out.println(count) System.out.println System.out System System.out count String[] args args
import java.util.Scanner;  
class Main 
{
  public static void main(String[] args) 
  {
    Scanner input=new Scanner(System.in);
    int a500=input.nextInt();
    int a100=input.nextInt();
    int a50=input.nextInt();
    int money=input.nextInt();
    int count=0;
    //case1
    int temp=0;
    for(int i=1;i<=a50;i++)
    {
      temp=temp+50;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //case2
    temp=0;
    for(int i=1;i<=a100;i++)
    {
      temp=temp+100;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //case3
    temp=0;
    for(int i=1;i<=a500;i++)
    {
      temp=temp+500;
      if(temp==money)
      {
        count++;
        break;
      }
    }
    //listing50
    temp=0;
    int[] list50=new int[a50];
    for(int i=0;i<a50;i++)
    {
     temp=temp+50;
     list50[i]=temp;
    }
    //listing100
    temp=0;
    int[] list100=new int[a100];
    for(int i=0;i<a100;i++)
    {
     temp=temp+100;
     list100[i]=temp;
    }
    //listing500
    temp=0;
    int[] list500=new int[a500];
    for(int i=0;i<a500;i++)
    {
     temp=temp+500;
     list500[i]=temp;
    }
    //case4  50_100
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a100;k++)
      {
      temp=list50[i]+list100[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case5  50_500
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a500;k++)
      {
      temp=list50[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case6  100_500
    temp=0;
    for(int i=0;i<a100;i++)
    {
      for(int k=0;k<a500;k++)
      {
      temp=list100[i]+list500[k];
      if(temp==money)
      {
        count++;
      }
      }
    }
    //case7  50_100_500
    temp=0;
    for(int i=0;i<a50;i++)
    {
      for(int k=0;k<a100;k++)
      {
        for(int l=0;l<a500;l++)
        {
         temp=list50[i]+list100[k]+list500[l];
         if(temp==money)
          {
            count++;
          }
        }
      }
    }
    System.out.println(count);
  }
}