import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        final Scanner sc=new Scanner(System.in);

        final double A = Integer.parseInt(sc.next());
        final double B = Integer.parseInt(sc.next());
        final double H = Integer.parseInt(sc.next());
        final double M = Integer.parseInt(sc.next());

        double parseH = H * 30d + (30d * (M / 60d));
        double parseM = M * 6d;

        double ang = Math.abs(parseH - parseM);
        double ans = Math.sqrt(Math.pow(A, 2) + Math.pow(B, 2) -2d * A * B * Math.cos(Math.toRadians(ang)));
        System.out.print(ans);
    }
} import java.util.Scanner; Scanner java.util public class Main{
    public static void main(String[] args){
        final Scanner sc=new Scanner(System.in);

        final double A = Integer.parseInt(sc.next());
        final double B = Integer.parseInt(sc.next());
        final double H = Integer.parseInt(sc.next());
        final double M = Integer.parseInt(sc.next());

        double parseH = H * 30d + (30d * (M / 60d));
        double parseM = M * 6d;

        double ang = Math.abs(parseH - parseM);
        double ans = Math.sqrt(Math.pow(A, 2) + Math.pow(B, 2) -2d * A * B * Math.cos(Math.toRadians(ang)));
        System.out.print(ans);
    }
} Main public static void main(String[] args){
        final Scanner sc=new Scanner(System.in);

        final double A = Integer.parseInt(sc.next());
        final double B = Integer.parseInt(sc.next());
        final double H = Integer.parseInt(sc.next());
        final double M = Integer.parseInt(sc.next());

        double parseH = H * 30d + (30d * (M / 60d));
        double parseM = M * 6d;

        double ang = Math.abs(parseH - parseM);
        double ans = Math.sqrt(Math.pow(A, 2) + Math.pow(B, 2) -2d * A * B * Math.cos(Math.toRadians(ang)));
        System.out.print(ans);
    } main {
        final Scanner sc=new Scanner(System.in);

        final double A = Integer.parseInt(sc.next());
        final double B = Integer.parseInt(sc.next());
        final double H = Integer.parseInt(sc.next());
        final double M = Integer.parseInt(sc.next());

        double parseH = H * 30d + (30d * (M / 60d));
        double parseM = M * 6d;

        double ang = Math.abs(parseH - parseM);
        double ans = Math.sqrt(Math.pow(A, 2) + Math.pow(B, 2) -2d * A * B * Math.cos(Math.toRadians(ang)));
        System.out.print(ans);
    } final Scanner sc=new Scanner(System.in); sc new Scanner(System.in) final double A = Integer.parseInt(sc.next()); A Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc final double B = Integer.parseInt(sc.next()); B Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc final double H = Integer.parseInt(sc.next()); H Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc final double M = Integer.parseInt(sc.next()); M Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc double parseH = H * 30d + (30d * (M / 60d)); parseH H * 30d + (30d * (M / 60d)) H * 30d H 30d (30d * (M / 60d)) 30d (M / 60d) M 60d double parseM = M * 6d; parseM M * 6d M 6d double ang = Math.abs(parseH - parseM); ang Math.abs(parseH - parseM) Math.abs Math parseH - parseM parseH parseM double ans = Math.sqrt(Math.pow(A, 2) + Math.pow(B, 2) -2d * A * B * Math.cos(Math.toRadians(ang))); ans Math.sqrt(Math.pow(A, 2) + Math.pow(B, 2) -2d * A * B * Math.cos(Math.toRadians(ang))) Math.sqrt Math Math.pow(A, 2) + Math.pow(B, 2) -2d * A * B * Math.cos(Math.toRadians(ang)) Math.pow(A, 2) + Math.pow(B, 2) Math.pow(A, 2) Math.pow Math A 2 Math.pow(B, 2) Math.pow Math B 2 2d * A * B * Math.cos(Math.toRadians(ang)) B 2d * A * B * Math.cos(Math.toRadians(ang)) 2d A B Math.cos(Math.toRadians(ang)) Math.cos Math Math.toRadians(ang) Math.toRadians Math ang System.out.print(ans) System.out.print System.out System System.out ans String[] args args public class Main{
    public static void main(String[] args){
        final Scanner sc=new Scanner(System.in);

        final double A = Integer.parseInt(sc.next());
        final double B = Integer.parseInt(sc.next());
        final double H = Integer.parseInt(sc.next());
        final double M = Integer.parseInt(sc.next());

        double parseH = H * 30d + (30d * (M / 60d));
        double parseM = M * 6d;

        double ang = Math.abs(parseH - parseM);
        double ans = Math.sqrt(Math.pow(A, 2) + Math.pow(B, 2) -2d * A * B * Math.cos(Math.toRadians(ang)));
        System.out.print(ans);
    }
} public class Main{
    public static void main(String[] args){
        final Scanner sc=new Scanner(System.in);

        final double A = Integer.parseInt(sc.next());
        final double B = Integer.parseInt(sc.next());
        final double H = Integer.parseInt(sc.next());
        final double M = Integer.parseInt(sc.next());

        double parseH = H * 30d + (30d * (M / 60d));
        double parseM = M * 6d;

        double ang = Math.abs(parseH - parseM);
        double ans = Math.sqrt(Math.pow(A, 2) + Math.pow(B, 2) -2d * A * B * Math.cos(Math.toRadians(ang)));
        System.out.print(ans);
    }
} Main
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        final Scanner sc=new Scanner(System.in);

        final double A = Integer.parseInt(sc.next());
        final double B = Integer.parseInt(sc.next());
        final double H = Integer.parseInt(sc.next());
        final double M = Integer.parseInt(sc.next());

        double parseH = H * 30d + (30d * (M / 60d));
        double parseM = M * 6d;

        double ang = Math.abs(parseH - parseM);
        double ans = Math.sqrt(Math.pow(A, 2) + Math.pow(B, 2) -2d * A * B * Math.cos(Math.toRadians(ang)));
        System.out.print(ans);
    }
}