The determinant of a matrix 2 × 2 is defined as follows:

A matrix is called degenerate if its determinant is equal to zero. 

The norm ||*A*|| of a matrix *A* is defined as a maximum of absolute values of its elements.

You are given a matrix <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/e78540a0de68f85833f82714a7141114b781276e.png" style="max-width: 100.0%;max-height: 100.0%;"/>. Consider any degenerate matrix *B* such that norm ||*A* - *B*|| is minimum possible. Determine ||*A* - *B*||.
The first line contains two integers *a* and *b* (|*a*|, |*b*| ≤ 10<sup class="upper-index">9</sup>), the elements of the first row of matrix *A*. 

The second line contains two integers *c* and *d* (|*c*|, |*d*| ≤ 10<sup class="upper-index">9</sup>) the elements of the second row of matrix *A*.
from math import fabs

def calc(lst):
    res = lst[0] * lst[3] - lst[1] * lst[2]
    return res


def get():
    a, b = map(float, input().split())
    c, d = map(float, input().split())
    res = [a, b, c, d]
    return res


eps = 0.00000000001
mov = [[x, y] for x in range(-1, 2) for y in range(-1, 2) if not(x == y and x == 0)]

v = get()

if fabs(calc(v)) < eps:
    print('0.000000000000\n')
    exit()

l = 0.0
r = 10000000000.0

while fabs(l - r) > eps:
    mid = (l + r) / 2.0
    left = v[0] * v[3]
    right = left
    Left = v[1] * v[2]
    Right = Left

    for i in range(0, 8):
        left = min(left, (v[0] + mov[i][0] * mid) * (v[3] + mov[i][1] * mid))
        right = max(right, (v[0] + mov[i][0] * mid) * (v[3] + mov[i][1] * mid))
        Left = min(Left, (v[1] + mov[i][0] * mid) * (v[2] + mov[i][1] * mid))
        Right = max(Right, (v[1] + mov[i][0] * mid) * (v[2] + mov[i][1] * mid))

    if left > Right or Left > right:
        l = mid
    else:
        r = mid

print("%.10f" % r)