其实就是求这个底面积。
我分了三种情况。
一种是正好水平过去在那个角上,也就是说h*L==H*l,答案很显然就是三角形面积
第二种就是往下偏移构成三角形,只需要求出边长即可 面积为(L*h*h)/2*H
第三种就是梯形,求出上底来之后面积即为所求  h*l-(H*l*l)/(2.0*L)
import java.util.*;
import java.math.*;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import java.io.PrintWriter;
public class Main {
    public static void main(String args[])throws IOException {
        StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
        PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
        in.nextToken();
        long h = (long) in.nval;
        in.nextToken();
        long l = (long) in.nval;
        in.nextToken();
        long H = (long) in.nval;
        in.nextToken();
        long L = (long) in.nval;
        in.nextToken();
        if(h*L==H*l)
            out.print(String.format("%.8f",(l*h)/(2.0)));
        else if(h*L<H*l)
            out.print(String.format("%.8f",(L*h*h)/(2.0*H)));
        else if(h*L>H*l)
            out.print(String.format("%.8f",h*l-(H*l*l)/(2.0*L)));
        out.flush();
   
    }
}