import java.util.Scanner;

/*
問題文
問題文
時針と分針の長さがそれぞれ A センチメートル、
B センチメートルであるアナログ時計を考えます。

時針と分針それぞれの片方の端点は同じ定点に固定されており、
この点を中心としてそれぞれの針は一定の角速度で時計回りに回転します。時針は
12 時間で、分針は 1 時間で 1 周します。

0 時ちょうどに時針と分針は重なっていました。
ちょうど H 時 M 分になったとき、2 本の針の固定されていない方の
端点は何センチメートル離れているでしょうか。

制約
入力はすべて整数
1≤A,B≤1000
0≤H≤11
0≤M≤59

*/

public class Main {
    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int h = sc.nextInt();
        int m = sc.nextInt();

        double hour = 0.5 * (60 * h + m);
        double min = 6 * m;

        double angle = hour-min;

        if (hour < min) {
        	angle = 360 - min + hour;
        }

        double ans = a*a + b*b - 2*a*b * Math.cos(angle / 180 * Math.PI);
        System.out.println(String.format("%.20f", Math.sqrt(ans)));
    }
} import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int h = sc.nextInt();
        int m = sc.nextInt();

        double hour = 0.5 * (60 * h + m);
        double min = 6 * m;

        double angle = hour-min;

        if (hour < min) {
        	angle = 360 - min + hour;
        }

        double ans = a*a + b*b - 2*a*b * Math.cos(angle / 180 * Math.PI);
        System.out.println(String.format("%.20f", Math.sqrt(ans)));
    }
} Main public static void main(String[] args){

        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int h = sc.nextInt();
        int m = sc.nextInt();

        double hour = 0.5 * (60 * h + m);
        double min = 6 * m;

        double angle = hour-min;

        if (hour < min) {
        	angle = 360 - min + hour;
        }

        double ans = a*a + b*b - 2*a*b * Math.cos(angle / 180 * Math.PI);
        System.out.println(String.format("%.20f", Math.sqrt(ans)));
    } main {

        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int h = sc.nextInt();
        int m = sc.nextInt();

        double hour = 0.5 * (60 * h + m);
        double min = 6 * m;

        double angle = hour-min;

        if (hour < min) {
        	angle = 360 - min + hour;
        }

        double ans = a*a + b*b - 2*a*b * Math.cos(angle / 180 * Math.PI);
        System.out.println(String.format("%.20f", Math.sqrt(ans)));
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int a = sc.nextInt(); a sc.nextInt() sc.nextInt sc int b = sc.nextInt(); b sc.nextInt() sc.nextInt sc int h = sc.nextInt(); h sc.nextInt() sc.nextInt sc int m = sc.nextInt(); m sc.nextInt() sc.nextInt sc double hour = 0.5 * (60 * h + m); hour 0.5 * (60 * h + m) 0.5 (60 * h + m) 60 * h 60 h m double min = 6 * m; min 6 * m 6 m double angle = hour-min; angle hour-min hour min if (hour < min) {
        	angle = 360 - min + hour;
        } hour < min hour min {
        	angle = 360 - min + hour;
        } angle = 360 - min + hour angle 360 - min + hour 360 - min 360 min hour double ans = a*a + b*b - 2*a*b * Math.cos(angle / 180 * Math.PI); ans a*a + b*b - 2*a*b * Math.cos(angle / 180 * Math.PI) a*a + b*b a*a a a b*b b b 2*a*b * Math.cos(angle / 180 * Math.PI) b 2*a*b * Math.cos(angle / 180 * Math.PI) 2 a b Math.cos(angle / 180 * Math.PI) Math.cos Math angle / 180 * Math.PI angle / 180 angle 180 Math.PI Math Math.PI System.out.println(String.format("%.20f", Math.sqrt(ans))) System.out.println System.out System System.out String.format("%.20f", Math.sqrt(ans)) String.format String "%.20f" Math.sqrt(ans) Math.sqrt Math ans String[] args args public class Main {
    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int h = sc.nextInt();
        int m = sc.nextInt();

        double hour = 0.5 * (60 * h + m);
        double min = 6 * m;

        double angle = hour-min;

        if (hour < min) {
        	angle = 360 - min + hour;
        }

        double ans = a*a + b*b - 2*a*b * Math.cos(angle / 180 * Math.PI);
        System.out.println(String.format("%.20f", Math.sqrt(ans)));
    }
} public class Main {
    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int h = sc.nextInt();
        int m = sc.nextInt();

        double hour = 0.5 * (60 * h + m);
        double min = 6 * m;

        double angle = hour-min;

        if (hour < min) {
        	angle = 360 - min + hour;
        }

        double ans = a*a + b*b - 2*a*b * Math.cos(angle / 180 * Math.PI);
        System.out.println(String.format("%.20f", Math.sqrt(ans)));
    }
} Main
import java.util.Scanner;

/*
問題文
問題文
時針と分針の長さがそれぞれ A センチメートル、
B センチメートルであるアナログ時計を考えます。

時針と分針それぞれの片方の端点は同じ定点に固定されており、
この点を中心としてそれぞれの針は一定の角速度で時計回りに回転します。時針は
12 時間で、分針は 1 時間で 1 周します。

0 時ちょうどに時針と分針は重なっていました。
ちょうど H 時 M 分になったとき、2 本の針の固定されていない方の
端点は何センチメートル離れているでしょうか。

制約
入力はすべて整数
1≤A,B≤1000
0≤H≤11
0≤M≤59

*/

public class Main {
    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int h = sc.nextInt();
        int m = sc.nextInt();

        double hour = 0.5 * (60 * h + m);
        double min = 6 * m;

        double angle = hour-min;

        if (hour < min) {
        	angle = 360 - min + hour;
        }

        double ans = a*a + b*b - 2*a*b * Math.cos(angle / 180 * Math.PI);
        System.out.println(String.format("%.20f", Math.sqrt(ans)));
    }
}