import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double a = sc.nextDouble();
        double b = sc.nextDouble();
        double h = sc.nextDouble();
        double m = sc.nextDouble();

        double m1 = 6 * m;
        double h1 = 30 * h + 0.5 * m;
        double rc = Math.abs(m1 - h1);
        double c = 0;
        if (rc == 0) {
            System.out.printf("%.20f", Math.abs(a - b));
        }else if (rc == 180){
            System.out.printf("%.20f", a + b);
        }else{
            if(rc > 180){
                rc = 360 - rc;
            }
            c = a * a + b * b;
            if(rc != 90){
                rc = Math.toRadians(rc);
                c = c - 2 * a * b * Math.cos(rc);
            }
            c = Math.sqrt(c);
            System.out.printf("%.20f",c);
        }
    }
}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz