#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long x = 0;
  char ch = getchar();
  bool f = 0;
  for (; !isdigit(ch); ch = getchar())
    if (ch == '-') f = 1;
  for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0';
  return f ? -x : x;
}
void write(long long x) {
  if (x < 0) putchar('-'), x = -x;
  if (x >= 10) write(x / 10);
  putchar(x % 10 + '0');
}
void writeln(long long x) {
  write(x);
  putchar('\n');
}
void writep(long long x) {
  write(x);
  putchar(' ');
}
inline long long work(long long a, long long b, long long c, long long l) {
  long long res = 0;
  for (long long i = max(0ll, a + b - c); i <= l; i++) {
    long long len = min(l - i, c + i - a - b);
    res += ((len + 1) * (len + 2) / 2);
  }
  return res;
}
signed main() {
  long long a = read(), b = read(), c = read(), l = read(), ans = 1;
  for (long long i = 1; i <= l; i++) ans = ans + (i + 1) * (i + 2) / 2;
  ans -= work(a, b, c, l);
  ans -= work(a, c, b, l);
  ans -= work(c, b, a, l);
  cout << ans << endl;
  return 0;
}
