function Main(input) {
    input = input.split("\n");
    var aMax = parseInt(input[0], 10);
    var bMax = parseInt(input[1], 10);
    var cMax = parseInt(input[2], 10);
    var total = parseInt(input[3], 10);
    var A_Amount = 500;
    var B_Amount = 100;
    var C_Amount = 50;
    var matchCount = 0;
    for(var aCount = 0; aCount <= aMax; aCount++) {
        if((A_Amount * aCount) > total) continue;
        for(var bCount = 0; bCount <= bMax; bCount++) {
            if(((A_Amount * aCount) + (B_Amount * bCount)) > total) continue;
            for(var cCount = 0; cCount <= cMax; cCount++) {
                var tmpTotal = (A_Amount * aCount) + (B_Amount * bCount) + (C_Amount * cCount);
                if(tmpTotal === total) {
                    matchCount++
                }
            }
        }
    }
    console.log(matchCount);
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));