#include <bits/stdc++.h>
using namespace std;
long long F(long long n) { return n < 0 ? 0 : n * (n + 1) / 2; }
long long da(int b_max, int c_max, int y) {
  b_max = min(b_max, y);
  c_max = min(c_max, y);
  if (y < 0 || b_max < 0 || c_max < 0) return 0;
  long long res = (long long)(b_max + 1) * (c_max + 1) - F(b_max + c_max - y);
  return res;
}
int main() {
  int a, b, c, l;
  long long ans = 0;
  cin >> a >> b >> c >> l;
  for (int x = 0; x < (int)(l + 1); x++) {
    int y = l - x;
    if (b + c + y > a + x) {
      int mi = max(0, (a + x + 1) - (b + c));
      int b_max = min(y, a + x - b);
      int c_max = min(y, a + x - c);
      ans += da(b_max, c_max, y) - da(b_max, c_max, mi - 1);
    }
    if (a + c + y > b + x) {
      int mi = max(0, (b + x + 1) - (a + c));
      int a_max = min(y, b + x - a - 1);
      int c_max = min(y, b + x - c);
      ans += da(a_max, c_max, y) - da(a_max, c_max, mi - 1);
    }
    if (a + b + y > c + x) {
      int mi = max(0, (c + x + 1) - (a + b));
      int a_max = min(y, c + x - a - 1);
      int b_max = min(y, c + x - b - 1);
      ans += da(a_max, b_max, y) - da(a_max, b_max, mi - 1);
    }
  }
  cout << ans << endl;
}
