#include <bits/stdc++.h>
using namespace std;
bool check(long long n, long long pos) { return n & (1LL << pos); }
long long Set(long long n, long long pos) { return n = n | (1LL << pos); }
void test(long long n) {
  long long cnt = 0;
  for (long long i = 0; i <= n; i++) {
    for (long long j = i; j <= n; j++) {
      for (long long k = j; k <= n; k++) {
        cnt++;
      }
    }
  }
  cout << cnt << " " << (n + 3) * (n + 1) * (n + 2) / 6 << endl;
}
int main() {
  long long i, j, k, l, m, n, o, r, q;
  long long testcase;
  long long input, flag, tag, ans;
  long long a, b, c;
  while (cin >> a >> b >> c >> l) {
    ans = ((l + 3) * (l + 1) * (l + 2)) / 6;
    for (long long i = 0; i <= l; i++) {
      long long x = min(+a - b - c + i, l - i);
      long long y = min(-a + b - c + i, l - i);
      long long z = min(-a - b + c + i, l - i);
      x = max(x, -1LL);
      y = max(y, -1LL);
      z = max(z, -1LL);
      ans -= ((x + 2) * (x + 1)) / 2;
      ans -= ((y + 2) * (y + 1)) / 2;
      ans -= ((z + 2) * (z + 1)) / 2;
    }
    cout << ans << "\n";
  }
}
