import java.io.*;

public class Main{
  public static void main(String[] arcs)throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int[] args = new int[4];
    for(int i= 0; i<3; i++){
      args[i] = Integer.parseInt(br.readLine());
    }
    args[3]=Integer.parseInt(br.readLine())/50;
    
    int c2 = 0;
    int c10 = 0;
    int counter = 0;
    
    if(args[0]*10 + args[1]*2 + args[2] >= args[3]){
        for(c10 = 0; c10 <= args[0]; c10++){
            if(c10 * 10 > args[3]){
                break;
            }
            else if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            }
        }
    }
    System.out.println(counter);
  }
} import java.io.*; io.* java public class Main{
  public static void main(String[] arcs)throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int[] args = new int[4];
    for(int i= 0; i<3; i++){
      args[i] = Integer.parseInt(br.readLine());
    }
    args[3]=Integer.parseInt(br.readLine())/50;
    
    int c2 = 0;
    int c10 = 0;
    int counter = 0;
    
    if(args[0]*10 + args[1]*2 + args[2] >= args[3]){
        for(c10 = 0; c10 <= args[0]; c10++){
            if(c10 * 10 > args[3]){
                break;
            }
            else if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            }
        }
    }
    System.out.println(counter);
  }
} Main public static void main(String[] arcs)throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int[] args = new int[4];
    for(int i= 0; i<3; i++){
      args[i] = Integer.parseInt(br.readLine());
    }
    args[3]=Integer.parseInt(br.readLine())/50;
    
    int c2 = 0;
    int c10 = 0;
    int counter = 0;
    
    if(args[0]*10 + args[1]*2 + args[2] >= args[3]){
        for(c10 = 0; c10 <= args[0]; c10++){
            if(c10 * 10 > args[3]){
                break;
            }
            else if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            }
        }
    }
    System.out.println(counter);
  } main {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int[] args = new int[4];
    for(int i= 0; i<3; i++){
      args[i] = Integer.parseInt(br.readLine());
    }
    args[3]=Integer.parseInt(br.readLine())/50;
    
    int c2 = 0;
    int c10 = 0;
    int counter = 0;
    
    if(args[0]*10 + args[1]*2 + args[2] >= args[3]){
        for(c10 = 0; c10 <= args[0]; c10++){
            if(c10 * 10 > args[3]){
                break;
            }
            else if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            }
        }
    }
    System.out.println(counter);
  } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) int[] args = new int[4]; args new int[4] 4 for(int i= 0; i<3; i++){
      args[i] = Integer.parseInt(br.readLine());
    } int i= 0; int i= 0; i 0 i<3 i 3 i++ i++ i {
      args[i] = Integer.parseInt(br.readLine());
    } {
      args[i] = Integer.parseInt(br.readLine());
    } args[i] = Integer.parseInt(br.readLine()) args[i] args i Integer.parseInt(br.readLine()) Integer.parseInt Integer br.readLine() br.readLine br args[3]=Integer.parseInt(br.readLine())/50 args[3] args 3 Integer.parseInt(br.readLine())/50 Integer.parseInt(br.readLine()) Integer.parseInt Integer br.readLine() br.readLine br 50 int c2 = 0; c2 0 int c10 = 0; c10 0 int counter = 0; counter 0 if(args[0]*10 + args[1]*2 + args[2] >= args[3]){
        for(c10 = 0; c10 <= args[0]; c10++){
            if(c10 * 10 > args[3]){
                break;
            }
            else if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            }
        }
    } args[0]*10 + args[1]*2 + args[2] >= args[3] args[0]*10 + args[1]*2 + args[2] args[0]*10 + args[1]*2 + args[2] args[0]*10 args[0] args 0 10 args[1]*2 args[1] args 1 2 args[2] args 2 args[3] args 3 {
        for(c10 = 0; c10 <= args[0]; c10++){
            if(c10 * 10 > args[3]){
                break;
            }
            else if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            }
        }
    } for(c10 = 0; c10 <= args[0]; c10++){
            if(c10 * 10 > args[3]){
                break;
            }
            else if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            }
        } c10 = 0; c10 = 0 c10 0 c10 <= args[0] c10 args[0] args 0 c10++ c10++ c10 {
            if(c10 * 10 > args[3]){
                break;
            }
            else if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            }
        } {
            if(c10 * 10 > args[3]){
                break;
            }
            else if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            }
        } if(c10 * 10 > args[3]){
                break;
            }
            else if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            } c10 * 10 > args[3] c10 * 10 c10 10 args[3] args 3 {
                break;
            } break; if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            } c10*10 + args[1]*2 + args[2]<args[3] c10*10 + args[1]*2 + args[2] c10*10 + args[1]*2 + args[2] c10*10 c10 10 args[1]*2 args[1] args 1 2 args[2] args 2 args[3] args 3 {
                //何もしない
            } {
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            } for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                } c2 = 0; c2 = 0 c2 0 c2<=args[1] c2 args[1] args 1 c2++ c2++ c2 {
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                } {
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                } if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    } c10*10 + c2*2 > args[3] c10*10 + c2*2 c10*10 c10 10 c2*2 c2 2 args[3] args 3 {
                        break;
                    } break; if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    } c10*10 + c2*2 + args[2] <args[3] c10*10 + c2*2 + args[2] c10*10 + c2*2 + args[2] c10*10 c10 10 c2*2 c2 2 args[2] args 2 args[3] args 3 {
                        //何もしない
                    } {
                        counter++;
                    } counter++ counter System.out.println(counter) System.out.println System.out System System.out counter String[] arcs arcs public class Main{
  public static void main(String[] arcs)throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int[] args = new int[4];
    for(int i= 0; i<3; i++){
      args[i] = Integer.parseInt(br.readLine());
    }
    args[3]=Integer.parseInt(br.readLine())/50;
    
    int c2 = 0;
    int c10 = 0;
    int counter = 0;
    
    if(args[0]*10 + args[1]*2 + args[2] >= args[3]){
        for(c10 = 0; c10 <= args[0]; c10++){
            if(c10 * 10 > args[3]){
                break;
            }
            else if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            }
        }
    }
    System.out.println(counter);
  }
} public class Main{
  public static void main(String[] arcs)throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int[] args = new int[4];
    for(int i= 0; i<3; i++){
      args[i] = Integer.parseInt(br.readLine());
    }
    args[3]=Integer.parseInt(br.readLine())/50;
    
    int c2 = 0;
    int c10 = 0;
    int counter = 0;
    
    if(args[0]*10 + args[1]*2 + args[2] >= args[3]){
        for(c10 = 0; c10 <= args[0]; c10++){
            if(c10 * 10 > args[3]){
                break;
            }
            else if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            }
        }
    }
    System.out.println(counter);
  }
} Main
import java.io.*;

public class Main{
  public static void main(String[] arcs)throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int[] args = new int[4];
    for(int i= 0; i<3; i++){
      args[i] = Integer.parseInt(br.readLine());
    }
    args[3]=Integer.parseInt(br.readLine())/50;
    
    int c2 = 0;
    int c10 = 0;
    int counter = 0;
    
    if(args[0]*10 + args[1]*2 + args[2] >= args[3]){
        for(c10 = 0; c10 <= args[0]; c10++){
            if(c10 * 10 > args[3]){
                break;
            }
            else if(c10*10 + args[1]*2 + args[2]<args[3]){
                //何もしない
            }
            else{
                for(c2 = 0;c2<=args[1];c2++){
                    if(c10*10 + c2*2 > args[3]){
                        break;
                    }
                    else if(c10*10 + c2*2 + args[2] <args[3]){
                        //何もしない
                    }else{
                        counter++;
                    }
                }
            }
        }
    }
    System.out.println(counter);
  }
}
