#include <bits/stdc++.h>
using namespace std;
long long ap(long long longest, long long d) {
  long long an = longest;
  if (an <= 0) return 0;
  long long a1 = 1 + (d == 2 && an % 2 == 0);
  long long n = (an - a1) / d + 1;
  return (a1 + an) * n / 2;
}
long long ways(int a, int b, int c, int l) {
  long long A = a - b - c + 1;
  long long B = l;
  long long C = c - b - a + 1;
  long long D = -(b - a - c) - 1;
  if (A > B) return 0;
  if (C > D) return 0;
  if (C > B) return 0;
  if (-D > B) return 0;
  long long ret = ap(B + 1, 1);
  if (A > 0) ret -= ap(A, 1);
  if (B > D) {
    ret -= ap(B - D, 2);
    if (D < 0) {
      ret += ap(-D - 1, 1);
    }
  }
  if (B > -C) {
    ret -= ap(B + C, 2);
    if (-C < 0) {
      ret += ap(C - 1, 1);
    }
  }
  return ret;
}
int main() {
  int a, b, c, L;
  cin >> a >> b >> c >> L;
  long long ans = 0;
  for (int add = 0; add <= L; ++add) {
    ans += ways(a + add, b, c, L - add);
  }
  cout << ans << endl;
  return 0;
}
