#include <bits/stdc++.h>
using namespace std;
inline int get_Int() {
  int x;
  scanf("%d", &x);
  return x;
}
inline string get_String() {
  char ch[1000000];
  scanf("%s", ch);
  return ch;
}
vector<bool> SellAggregated(100001);
vector<bool> BuyAggregated(100001);
long long ans;
void reduce(long long a, long long b, long long c, long long r) {
  long long list[3] = {a, b, c};
  if (list[0] < list[1] + list[2]) return;
  swap(list[0], list[2]);
  if (list[0] + list[1] <= list[2]) {
    long long d = min(r, list[2] - list[1] - list[0]);
    ans = (long long)(ans - ((d + 1) * (d + 2)) / 2);
  }
}
int main() {
  int a3, b3, c3;
  int a = get_Int(), b = get_Int(), c = get_Int(), l = get_Int();
  ans = (long long)(l + 3) * (l + 2) * (l + 1) / 6;
  for (int checkR = 0; checkR <= l; checkR++) {
    a3 = a + checkR;
    b3 = b + checkR;
    c3 = c + checkR;
    reduce(a3, b, c, l - checkR);
    reduce(b3, a, c, l - checkR);
    reduce(c3, b, a, l - checkR);
  }
  cout << ans << "\n";
}
