#include <bits/stdc++.h>
using namespace std;
long long Pow(long long x, long long y, long long m) {
  if (y == 0) return 1;
  long long p = Pow(x, y / 2, m) % m;
  p = (p * p) % m;
  return (y % 2 == 0) ? p : (x * p) % m;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long i;
  vector<long long> a(3);
  long long d, ans = 0;
  cin >> a[0] >> a[1] >> a[2] >> d;
  sort(a.begin(), a.end());
  if (abs(a[0] - a[1]) >= d && abs(a[1] - a[2]) >= d)
    ans = 0;
  else if (abs(a[0] - a[1]) >= d && abs(a[1] - a[2]) < d)
    ans += d - abs(a[1] - a[2]);
  else if (abs(a[0] - a[1]) < d && abs(a[1] - a[2]) >= d)
    ans += d - abs(a[1] - a[0]);
  else
    ans += d - abs(a[1] - a[0]) + d - abs(a[1] - a[2]);
  cout << ans << "\n";
}
