const main = (input) => {
    const A = parseInt(input.split("\n")[0], 10);
    const B = parseInt(input.split("\n")[1], 10);
    const C = parseInt(input.split("\n")[2], 10);
    const X = parseInt(input.split("\n")[3], 10);
    const startNum50 = (X / 50 > C) ? C : (X / 50);
    let count = 0;
    for (let i = startNum50; i >= 0; i--){
        const Xminus50 = X - 50 * i;
        if(Xminus50 == 0){
            count++;
            continue;
        }
        if(Xminus50 % 100 == 0){
            const startNum100 = (Xminus50 / 100 > B) ? B : (Xminus50 / 100);
            for(let j = startNum100; j >= 0; j--){
                const 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'));