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 sqrt

def f(sa, sb, sc, sd, A, B, C, D):
    cA = sa * sd - sb * sc
    cB = sa * D + sd * A - sb * C - sc * B
    cC = A * D - B * C
    if cA == 0:
        if cB == 0:
            return 0 if cC == 0 else float("inf")
        return abs(-cC / cB)
    Dis = cB * cB - 4 * cA * cC
    if Dis < 0:
        return float("inf")
    x1 = (-cB + sqrt(Dis)) / (2 * cA)
    x2 = (-cB - sqrt(Dis)) / (2 * cA)
    return max(abs(x1), abs(x2))

def main():
    import sys
    
    A, B, C, D = [int(i) for i in sys.stdin.read().split()]
    result = float("inf")
    for sa in [-1, 1]:
        for sb in [-1, 1]:
            for sc in [-1, 1]:
                for sd in [-1, 1]:
                    result = min(result, f(sa, sb, sc, sd, A, B, C, D))
    
    print(result)
    
    
main()
