-157778763 218978790 976692563 591093088
 -1 -4 1 4
 -999999999 -1000000000 -1 0
 1000000000 1000000000 1000000000 1000000000
 -2 -3 -2 1
 -1000000000 -999999999 1000000000 999999999
 0 -1 0 1
 -999999999 -999999999 999999999 999999999
 -946749893 -687257665 -539044455 -443568671
 -26644507 -867720841 975594569 264730225
 309857887 -687373066 663986893 403321752
 -2 -2 -2 0
 0 -2 0 2
 0 -1 2 1
 -2 -2 2 2
 -999999999 -1000000000 999999999 1000000000
 -330513944 -970064382 500608496 369852884
 0 -3 0 3
 0 0 2 2
 -946749893 -687257666 -539044455 -443568670
 -330513944 -970064383 500608496 369852885
 -1000000000 -1000000000 1000000000 1000000000
 0 -1 2 3
 -999999999 -999999999 -1 -1
 309857887 -687373065 663986893 403321751
 -482406510 -512306895 412844236 -168036049
 0 0 2 0
 0 0 0 0
 -471257905 -685885154 782342299 909511044
 -482406510 -512306894 412844236 -168036050
 -157778763 218978791 976692563 591093087
 -411495869 33834653 -234317741 925065545
 -2 -3 2 3
 -411495869 33834652 -234317741 925065546
 -26644507 -867720842 975594569 264730226
 -537640548 -254017710 62355638 588691834
 -471257905 -685885153 782342299 909511043
 -1 -3 1 3
 1000000000 999999999 1000000000 999999999
 1 0 5 6
 -537640548 -254017711 62355638 588691835

211076501291102387 14 500000000000000000 1 3 2000000000000000000 2 1999999998000000001 49676664342971903 567493356068872580 193123336596257367 2 3 5 13 2000000000000000000 556817654843544374 4 5 49676664750677342 556817655674666815 2000000002000000001 8 499999999000000001 193123336242128360 154104366473536355 2 1 999994501061310398 154104365578285608 211076500156631060 78953311064369599 18 78953311241547728 567493357071111657 252811256874252458 999994499807710193 11 1 18 252811257474248645
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.BufferedWriter;
import java.io.Writer;
import java.io.OutputStreamWriter;
import java.util.InputMismatchException;
import java.io.IOException;
import java.io.InputStream;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 *
 * @author PloadyFree
 */
public class Main {
	public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		OutputWriter out = new OutputWriter(outputStream);
		TaskE solver = new TaskE();
		solver.solve(1, in, out);
		out.close();
	}

	static class TaskE {
		public void solve(int testNumber, InputReader in, OutputWriter out) {
			long x1 = in.readLong();
			long y1 = in.readLong();
			long x2 = in.readLong();
			long y2 = in.readLong();
			long dx = x2 - x1;
			long dy = y2 - y1;

			long sum = (dx / 2 + 1) * (dy + 1) - (dy / 2 + (y2 % 2) ^ 1);

			out.print(sum);
		}

	}

	static class OutputWriter {
		private final PrintWriter writer;

		public OutputWriter(OutputStream outputStream) {
			writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream)));
		}

		public OutputWriter(Writer writer) {
			this.writer = new PrintWriter(writer);
		}

		public void close() {
			writer.close();
		}

		public void print(long i) {
			writer.print(i);
		}

	}

	static class InputReader {
		private InputStream stream;
		private byte[] buf = new byte[1024];
		private int curChar;
		private int numChars;
		private InputReader.SpaceCharFilter filter;

		public InputReader(InputStream stream) {
			this.stream = stream;
		}

		public int read() {
			if (numChars == -1)
				throw new InputMismatchException();
			if (curChar >= numChars) {
				curChar = 0;
				try {
					numChars = stream.read(buf);
				} catch (IOException e) {
					throw new InputMismatchException();
				}
				if (numChars <= 0)
					return -1;
			}
			return buf[curChar++];
		}

		public long readLong() {
			int c = read();
			while (isSpaceChar(c))
				c = read();
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = read();
			}
			long res = 0;
			do {
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				res *= 10;
				res += c - '0';
				c = read();
			} while (!isSpaceChar(c));
			return res * sgn;
		}

		public boolean isSpaceChar(int c) {
			if (filter != null)
				return filter.isSpaceChar(c);
			return isWhitespace(c);
		}

		public static boolean isWhitespace(int c) {
			return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
		}

		public interface SpaceCharFilter {
			public boolean isSpaceChar(int ch);

		}

	}
}

