import std.stdio;
import std.array;
import std.conv;
import std.algorithm;
import std.string;
import std.typecons;
import std.format;

int[Tuple!(long, long, long)] patterns;
long answer;

void solve(long a, long b, long c, long x)
{
	auto key = tuple(a, b, c);
	if (key in patterns) {
		return;
	}
	patterns[key] = 0;

	if (x == 0) {
		answer++;
	}
	else if (x < 0) {
		return;
	}

	if (a > 0) {
		solve(a-1, b, c, x-500);
	}
	if (b > 0) {
		solve(a, b-1, c, x-100);
	}
	if (c > 0) {
		solve(a, b, c-1, x-50);
	}
}

void main(string[] argv)
{
	long a = readln.chomp.to!long;
	long b = readln.chomp.to!long;
	long c = readln.chomp.to!long;
	long x = readln.chomp.to!long;

	patterns.clear();
	answer = 0;
	solve(a, b, c, x);
	writeln(answer);
}
