-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.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException{
        (new Main()).myCode();
    }
    public void myCode() throws IOException {
        Input("");
        Output("");
        splitLine();
        long x = getLong();
        long y = getLong();
        long u = getLong();
        long v = getLong();
        long n = (u - x + 1) / 2;
        long m = (v - y + 1) / 2;
        if ((u - x + 1) % 2 == 1) {
            n = (u - x) / 2 + ((u % 2 == 0)?1:0);
        }
        if ((v - y + 1) % 2 == 1) {
            m = (v - y) / 2 + ((v % 2 == 0)?1:0);
        }
        output.println((u - n - x + 1) * (v - m - y + 1) + n * m);
        close();
    }
    /*=================================================================================================================*
     * Data IO
     */
    BufferedReader input;
    PrintWriter output;
    StringTokenizer token;
    public void Input (String name) throws IOException {
        if (name != ""){
            input = new BufferedReader(new FileReader(name));
        } else {
            input = new BufferedReader(new InputStreamReader(System.in));
        }
    }
    public void Output (String name) throws IOException {
        if (name != ""){
            output = new PrintWriter(new BufferedWriter(new FileWriter(name)));
        } else {
            output = new PrintWriter(System.out);
        }
    }
    public String getLine () throws IOException {
        return input.readLine();
    }
    public void splitLine () throws IOException {
        token = new StringTokenizer(getLine());
    }
    public long getLong () throws IOException {
        return Long.parseLong(token.nextToken());
    }
    public int getInt () throws IOException {
        return Integer.parseInt(token.nextToken());
    }
    public String getStr () throws IOException {
        return token.nextToken();
    }
    public char getChar () throws IOException {
        return token.nextToken().charAt(0);
    }
    public void close () throws IOException {
        if (input != null) {
            input.close();
        }
        if (output != null) {
            output.close();
        }
    }
    /*================================================================================================================*/
}