"use strict";

var main = function main(input) {
  var A = parseInt(input.split("\n")[0], 10);
  var B = parseInt(input.split("\n")[1], 10);
  var C = parseInt(input.split("\n")[2], 10);
  var X = parseInt(input.split("\n")[3], 10);
  var startNum50 = X / 50 > C ? C : X / 50;
  var count = 0;

  for (var i = startNum50; i >= 0; i--) {
    var Xminus50 = X - 50 * i;

    if (Xminus50 == 0) {
      count++;
      continue;
    }

    if (Xminus50 % 100 == 0) {
      var startNum100 = Xminus50 / 100 > B ? B : Xminus50 / 100;

      for (var j = startNum100; j >= 0; j--) {
        var Xminus50minus100 = Xminus50 - 100 * j;

        if (Xminus50minus100 == 0) {
          count++;
          continue;
        }

        if (Xminus50minus100 % 500 == 0 && Xminus50minus100 % 500 <= A) {
          count++;
        }
      }
    }
  }

  console.log(count);
};

main(require('fs').readFileSync('/dev/stdin', 'utf8'));