#include <bits/stdc++.h>
using namespace std;
long long a, b, c, l, debe;
long long son(long long di1, long long di2, long long hasta) {
  if (di1 > hasta) return 0;
  if (di2 > hasta) di2 = hasta;
  long long res = 0;
  long long izq = di1, der = di2, es, hay;
  if (di2 - di1 > 7) {
    if ((hasta - di1) % 2 == 0) izq = di1 + 1;
    if ((hasta - di2) % 2 == 1) der = di2 - 1;
    es = (hasta - izq) / 2 + 1;
    hay = (der - izq - 1) / 2;
    res = res + es * (der - izq + 1) - (hay * (hay + 1));
  } else {
    izq = di2 + 1;
    der = di2 + 1;
  }
  for (long long i = di1; i < izq; i++) {
    res = res + (hasta - i) / 2 + 1;
  }
  for (long long i = di2; i > der; i--) {
    res = res + (hasta - i) / 2 + 1;
  }
  return res;
}
inline long long ma(long long a, long long b) { return a > b ? a : b; }
int main() {
  cin >> a >> b >> c >> l;
  if (a > b) {
    swap(a, b);
  }
  long long ans = 0;
  for (long long i = 0; i <= l; i++) {
    debe = a + b <= c + i ? c + i - (a + b) + 1 : 0;
    if (debe > l - i) continue;
    if (a + 1 - b < c + i) {
      long long emp = ma(1, 1 - c - i + b - a);
      ans = ans + son(emp, c + i - 1 + b - a, l - i) -
            son(emp, c + i - 1 + b - a, debe - 1);
    }
    if (b + 1 - a < c + i) {
      long long emp = ma(1, 1 - c - i + b - a);
      ans = ans + son(emp, c + i - 1 + a - b, l - i) -
            son(emp, c + i - 1 + a - b, debe - 1);
    }
    if (a - b < c + i and b - a < c + i) {
      ans = ans + son(0, 0, l - i) - son(0, 0, debe - 1);
    }
  }
  cout << ans << endl;
  return 0;
}
