function myin(){return require("fs").readFileSync("/dev/stdin", "utf8").trim();}
function myout(text){console.log(text);}//standard output
//[no]param
//0:noConvert	1:singleNum	2:spaceList	3:newLineList	4:spaceNumList	5:newLineNumList
function myconv(i,no){switch(no){case 0:return i;case 1:return parseInt(i);case 2:return i.split(" ");case 3:return i.split("\n");case 4:return i.split(" ").map((a)=>Number(a));case 5:return i.split("\n").map((a)=>Number(a));}}

function Main(input) {
  input = myconv(input,5);
  var a = input[0];
  var b = input[1];
  var c = input[2];
  var x = input[3];
  var output = 0;
  
  for(var i = 0; i <= a; i++){
    for(var j = 0; j <= b; j++){
      for(var k = 0; k <= c; k++){
        if(x == (i * 500 + j * 100 + k * 50)){
           output++;
           }
      }
    }
  }
  
  myout(output);
}

Main(myin());