function spilitInput(input) {
  var splited = [];
  var rows = input.split('\n');
  for (var i = 0; i < rows.length; i += 1) {
    splited.push(rows[i].split(' '));
  }
  return splited;
}
function Main(input) {
  var splited = spilitInput(input);
  var a = 500;
  var b = 100;
  var c = 50;
  var a_max = splited[0][0];
  var b_max = splited[1][0];
  var c_max = splited[2][0];
  var y = splited[3][0];

  var success_counter = 0;
  
  for (var ax = 0; ax <= a_max; ax += 1) {
  for (var bx = 0; bx <= b_max; bx += 1) {
  for (var cx = 0; cx <= c_max; cx += 1) {
    if ((a*ax) + (b*bx) + (c*cx) == y) success_counter+=1;
  }
  }
  }
  
  console.log(success_counter);
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));