// //#define _GLIBCXX_DEBUG //#define NDEBUG #include using namespace std; typedef long long ll; const ll linf = 1e18; const int inf = 1e9; #define vl vector #define pg priority_queue, greater> #define pq priority_queue #define rp(i, a, n) for (int i = a; i < n; i++) #define pr(i, a, n) for (int i = a; i >= n; i--) #define fm(i, mp) for (auto i = (mp).begin(); i != (mp).end(); ++i) #define al(v) (v).begin(), (v).end() #define mz(x) memset(x, 0, sizeof(x)) #define mi(x) memset(x, 0x3F, sizeof(x)) #define ce(x) cout << (x) << endl #define cs(x) cout << (x) << ' ' #define co(x) cout << (x) #define cd(x, y) cout << setprecision(x) << (y) << endl #define ma make_pair #define pb push_back #define fs first #define sc second #define ceo cout << endl #define cso cout << ' ' clock_t startT, endT; int time() { endT = clock(); cerr << (endT - startT) / 1000 << "ms" << endl; return (endT - startT) / 1000; } int main() { startT = clock(); cin.tie(0); ios::sync_with_stdio(0); //---------------------------- ll a, b, c, d; cin >> a >> b >> c >> d; ll A = 0; rp(i, a, b + 1) { if (i >= c && i <= d) A++; } ce((b - a + 1) * (d - c + 1) - A); //---------------------------- time(); return 0; } //