#include <bits/stdc++.h>
using namespace std;
template <class T>
inline bool chmin(T &a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline bool chmax(T &a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
constexpr long long mod = 998244353;
constexpr long long inf = 3e18;
long long mi(long long x) {
  long long res = inf;
  while (x) {
    chmin(res, x % 10);
    x /= 10;
  }
  return res;
}
long long mx(long long x) {
  long long res = -inf;
  while (x) {
    chmax(res, x % 10);
    x /= 10;
  }
  return res;
}
signed main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  long long a, b, c, d;
  cin >> a >> b >> c >> d;
  long long ans = 0;
  for (long long i = a; i <= b; i++) {
    long long l = (c + 1) - i, r = (d + 1) - i;
    ans += (1 + d - c + 1) * (d - c + 1) / 2;
    if (l < b) {
      if (r >= b)
        ans -= (1 + b - l) * (b - l) / 2;
      else
        ans -= (1 + d - c + 1) * (d - c + 1) / 2;
    }
    if (c < r) {
      ans -= ((c - l + 2) + (d - c + 1)) * (r - c) / 2;
    }
    if (r < c) {
      ans += (c - max(r, b - 1)) * (d - c + 1);
    }
  }
  cout << ans << endl;
}
