const Debug = function () {
    const stdin = function (text) {

    };

    return stdin;
};


const Release = function () {
    const fs = require('fs');
    const stdin = function (text) {
        if (text) console.log(text);
        return fs.readFileSync('/dev/stdin', 'utf8');
    }
    return stdin;
};


const debug = false;

const stdin = debug ? Debug() : Release();
const input = stdin().split('\n').map(x => parseInt(x));

const A = input[0];
const B = input[1];
const C = input[2];
const X = input[3];

var z = [];
for (var i = 0; i <= Math.floor(X / 500); i++) {
    var _a = X - i * 500;

    for (var j = 0; j <= Math.floor(_a / 100); j++) {
        var _b = _a - j * 100;
        var _c = _b / 50;
        z.push({ a: i, b: j, c: _c });

    }
}

console.log(z.filter(x => x.a <= A && x.b <= B && x.c <= C).length);
