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*.
a, b = map(int, input().split())
c, d = map(int, input().split())
L, R = 0, 10 ** 9
for i in range(100):
    M = (L + R) / 2
    z = M
    p1, p2 = -10 ** 1000, 10 ** 1000
    q1, q2 = -10 ** 1000, 10 ** 1000
    r1, r2 = -10 ** 1000, 10 ** 1000
    s1, s2 = -10 ** 1000, 10 ** 1000
    if abs(a + z) < 1e-9:
        if c - z > 0:
            p1, p2 = p2, p1
    else:
        if a + z > 0:
            p1 = (c - z) / (a + z)
        else:
            p2 = (c - z) / (a + z)

    if abs(a - z) < 1e-9:
        if c + z < 0:
            q1, q2 = q2, q1
    else:
        if a - z > 0:
            q2 = (c + z) / (a - z)
        else:
            q1 = (c + z) / (a - z)

    if abs(b + z) < 1e-9:
        if d - z > 0:
            r1, r2 = r2, r1
    else:
        if b + z > 0:
            r1 = (d - z) / (b + z)
        else:
            r2 = (d - z) / (b + z)

    if abs(b - z) < 1e-9:
        if b + z < 0:
            s1, s2 = s2, s1
    else:
        if b - z > 0:
            s2 = (d + z) / (b - z)
        else:
            s1 = (d + z) / (b - z)

    c1 = max(p1, max(q1, max(s1, r1)))
    c2 = min(p2, min(q2, min(s2, r2)))
    if c1 <= c2:
        R = M
    else:
        L = M
print(L)