#include <bits/stdc++.h>
using namespace std;
void abc() { cerr << endl; }
template <typename T, typename... U>
void abc(T a, U... b) {
  cerr << a << ' ', abc(b...);
}
template <typename T>
void printv(T l, T r) {
  while (l != r) cout << *l << " \n"[++l == r];
}
template <typename A, typename B>
istream& operator>>(istream& o, pair<A, B>& a) {
  return o >> a.first >> a.second;
}
template <typename A, typename B>
ostream& operator<<(ostream& o, pair<A, B> a) {
  return o << '(' << a.first << ", " << a.second << ')';
}
template <typename T>
ostream& operator<<(ostream& o, vector<T> a) {
  bool is = false;
  for (T i : a) {
    o << (is ? ' ' : '{'), is = true, o << i;
  }
  return o << '}';
}
const int mod = 998244353, N = 1000001, logN = 20, K = 111;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  long long int x1, x2, y1, y2;
  cin >> x1 >> y1 >> x2 >> y2;
  long long int a = x2 - x1 + 1, b = y2 - y1 + 1;
  if (a & 1 && b & 1) {
    cout << (a * b + 1) / 2 << endl;
  } else {
    cout << a * b / 2 << endl;
  }
}
