function assess(A, B, X, Y: longint): longint;
var z: longint;
begin
if(A < B) then begin z:=A; A:=B; B:=z; end;
if(X < Y) then begin z:=X; X:=Y; Y:=z; end;
if(A >= X) and ( B >= Y) then assess:=0
else
if(A < X) and (B < Y) and (A <> Y) then assess:= X*Y - A*B
else
if(Y>=B) then assess:= ((Y - B) div 2 + (Y - B) mod 2) * X
else
if(X>=A) then assess:= ((X - A) div 2 + (X - A) mod 2) * Y;
end;
var
A,B,X,Y : longint;
fr, fw : text;
begin
readln( A, B, X, Y);
writeln( assess(A, B, X, Y));
end.
ZnVuY3Rpb24gYXNzZXNzKEEsIEIsIFgsIFk6IGxvbmdpbnQpOiBsb25naW50Owp2YXIgejogbG9uZ2ludDsKYmVnaW4KICAgIGlmKEEgPCBCKSB0aGVuIGJlZ2luIHo6PUE7IEE6PUI7IEI6PXo7IGVuZDsKICAgICAgIAogICAgaWYoWCA8IFkpIHRoZW4gYmVnaW4gejo9WDsgWDo9WTsgWTo9ejsgZW5kOwoKICAgIGlmKEEgPj0gWCkgIGFuZCAoIEIgPj0gWSkgdGhlbiBhc3Nlc3M6PTAKICAgICAgICAgZWxzZQogICAgICAgICAgIGlmKEEgPCBYKSBhbmQgKEIgPCBZKSBhbmQgKEEgPD4gWSkgdGhlbiBhc3Nlc3M6PSBYKlkgLSBBKkIKICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgaWYoWT49QikgdGhlbiAgYXNzZXNzOj0gKChZIC0gQikgZGl2ICAyICsgKFkgLSBCKSBtb2QgMikgKiBYCiAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBpZihYPj1BKSB0aGVuICBhc3Nlc3M6PSAoKFggLSBBKSBkaXYgMiArIChYIC0gQSkgbW9kIDIpICogWTsKZW5kOwoKCnZhcgogICAgQSxCLFgsWSA6IGxvbmdpbnQ7CiAgICBmciwgZncgIDogdGV4dDsKCmJlZ2luCiAgIAogICAgcmVhZGxuKCBBLCBCLCBYLCBZKTsKCiAgICB3cml0ZWxuKCBhc3Nlc3MoQSwgQiwgWCwgWSkpOwogIAplbmQuCg==