import java.math.BigDecimal;
import java.util.Scanner;

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

        // 角度を求める
        BigDecimal hangle = new BigDecimal(360).divide(new BigDecimal(12)).multiply(h).add(m.multiply(new BigDecimal(0.5)));
        BigDecimal mangle = new BigDecimal(360).divide(new BigDecimal(60)).multiply(m);
        BigDecimal diffangle = hangle.subtract(mangle).abs();
        if(diffangle.compareTo(new BigDecimal(180)) > 0){
            diffangle = new BigDecimal(360).subtract(diffangle);
        }

        BigDecimal cpow;
        if(diffangle.compareTo(new BigDecimal(90)) == 0) {
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow);
        } else {
            BigDecimal cos = new BigDecimal(Math.cos(Math.toRadians(diffangle.doubleValue())));
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow).subtract(new BigDecimal(2).multiply(a).multiply(b).multiply(cos));
        }
        System.out.println(Math.sqrt(cpow.doubleValue()));
    }
} import java.math.BigDecimal; BigDecimal java.math import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        BigDecimal a = sc.nextBigDecimal();
        BigDecimal b = sc.nextBigDecimal();
        BigDecimal h = sc.nextBigDecimal();
        BigDecimal m = sc.nextBigDecimal();

        // 角度を求める
        BigDecimal hangle = new BigDecimal(360).divide(new BigDecimal(12)).multiply(h).add(m.multiply(new BigDecimal(0.5)));
        BigDecimal mangle = new BigDecimal(360).divide(new BigDecimal(60)).multiply(m);
        BigDecimal diffangle = hangle.subtract(mangle).abs();
        if(diffangle.compareTo(new BigDecimal(180)) > 0){
            diffangle = new BigDecimal(360).subtract(diffangle);
        }

        BigDecimal cpow;
        if(diffangle.compareTo(new BigDecimal(90)) == 0) {
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow);
        } else {
            BigDecimal cos = new BigDecimal(Math.cos(Math.toRadians(diffangle.doubleValue())));
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow).subtract(new BigDecimal(2).multiply(a).multiply(b).multiply(cos));
        }
        System.out.println(Math.sqrt(cpow.doubleValue()));
    }
} Main public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        BigDecimal a = sc.nextBigDecimal();
        BigDecimal b = sc.nextBigDecimal();
        BigDecimal h = sc.nextBigDecimal();
        BigDecimal m = sc.nextBigDecimal();

        // 角度を求める
        BigDecimal hangle = new BigDecimal(360).divide(new BigDecimal(12)).multiply(h).add(m.multiply(new BigDecimal(0.5)));
        BigDecimal mangle = new BigDecimal(360).divide(new BigDecimal(60)).multiply(m);
        BigDecimal diffangle = hangle.subtract(mangle).abs();
        if(diffangle.compareTo(new BigDecimal(180)) > 0){
            diffangle = new BigDecimal(360).subtract(diffangle);
        }

        BigDecimal cpow;
        if(diffangle.compareTo(new BigDecimal(90)) == 0) {
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow);
        } else {
            BigDecimal cos = new BigDecimal(Math.cos(Math.toRadians(diffangle.doubleValue())));
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow).subtract(new BigDecimal(2).multiply(a).multiply(b).multiply(cos));
        }
        System.out.println(Math.sqrt(cpow.doubleValue()));
    } main {
        Scanner sc = new Scanner(System.in);
        BigDecimal a = sc.nextBigDecimal();
        BigDecimal b = sc.nextBigDecimal();
        BigDecimal h = sc.nextBigDecimal();
        BigDecimal m = sc.nextBigDecimal();

        // 角度を求める
        BigDecimal hangle = new BigDecimal(360).divide(new BigDecimal(12)).multiply(h).add(m.multiply(new BigDecimal(0.5)));
        BigDecimal mangle = new BigDecimal(360).divide(new BigDecimal(60)).multiply(m);
        BigDecimal diffangle = hangle.subtract(mangle).abs();
        if(diffangle.compareTo(new BigDecimal(180)) > 0){
            diffangle = new BigDecimal(360).subtract(diffangle);
        }

        BigDecimal cpow;
        if(diffangle.compareTo(new BigDecimal(90)) == 0) {
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow);
        } else {
            BigDecimal cos = new BigDecimal(Math.cos(Math.toRadians(diffangle.doubleValue())));
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow).subtract(new BigDecimal(2).multiply(a).multiply(b).multiply(cos));
        }
        System.out.println(Math.sqrt(cpow.doubleValue()));
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) BigDecimal a = sc.nextBigDecimal(); a sc.nextBigDecimal() sc.nextBigDecimal sc BigDecimal b = sc.nextBigDecimal(); b sc.nextBigDecimal() sc.nextBigDecimal sc BigDecimal h = sc.nextBigDecimal(); h sc.nextBigDecimal() sc.nextBigDecimal sc BigDecimal m = sc.nextBigDecimal(); m sc.nextBigDecimal() sc.nextBigDecimal sc BigDecimal hangle = new BigDecimal(360).divide(new BigDecimal(12)).multiply(h).add(m.multiply(new BigDecimal(0.5))); hangle new BigDecimal(360).divide(new BigDecimal(12)).multiply(h).add(m.multiply(new BigDecimal(0.5))) new BigDecimal(360).divide(new BigDecimal(12)).multiply(h).add new BigDecimal(360).divide(new BigDecimal(12)).multiply(h) new BigDecimal(360).divide(new BigDecimal(12)).multiply new BigDecimal(360).divide(new BigDecimal(12)) new BigDecimal(360).divide new BigDecimal(360) new BigDecimal(12) h m.multiply(new BigDecimal(0.5)) m.multiply m new BigDecimal(0.5) BigDecimal mangle = new BigDecimal(360).divide(new BigDecimal(60)).multiply(m); mangle new BigDecimal(360).divide(new BigDecimal(60)).multiply(m) new BigDecimal(360).divide(new BigDecimal(60)).multiply new BigDecimal(360).divide(new BigDecimal(60)) new BigDecimal(360).divide new BigDecimal(360) new BigDecimal(60) m BigDecimal diffangle = hangle.subtract(mangle).abs(); diffangle hangle.subtract(mangle).abs() hangle.subtract(mangle).abs hangle.subtract(mangle) hangle.subtract hangle mangle if(diffangle.compareTo(new BigDecimal(180)) > 0){
            diffangle = new BigDecimal(360).subtract(diffangle);
        } diffangle.compareTo(new BigDecimal(180)) > 0 diffangle.compareTo(new BigDecimal(180)) diffangle.compareTo diffangle new BigDecimal(180) 0 {
            diffangle = new BigDecimal(360).subtract(diffangle);
        } diffangle = new BigDecimal(360).subtract(diffangle) diffangle new BigDecimal(360).subtract(diffangle) new BigDecimal(360).subtract new BigDecimal(360) diffangle BigDecimal cpow; cpow if(diffangle.compareTo(new BigDecimal(90)) == 0) {
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow);
        } else {
            BigDecimal cos = new BigDecimal(Math.cos(Math.toRadians(diffangle.doubleValue())));
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow).subtract(new BigDecimal(2).multiply(a).multiply(b).multiply(cos));
        } diffangle.compareTo(new BigDecimal(90)) == 0 diffangle.compareTo(new BigDecimal(90)) diffangle.compareTo diffangle new BigDecimal(90) 0 {
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow);
        } BigDecimal apow = a.pow(2); apow a.pow(2) a.pow a 2 BigDecimal bpow = b.pow(2); bpow b.pow(2) b.pow b 2 cpow = apow.add(bpow) cpow apow.add(bpow) apow.add apow bpow {
            BigDecimal cos = new BigDecimal(Math.cos(Math.toRadians(diffangle.doubleValue())));
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow).subtract(new BigDecimal(2).multiply(a).multiply(b).multiply(cos));
        } BigDecimal cos = new BigDecimal(Math.cos(Math.toRadians(diffangle.doubleValue()))); cos new BigDecimal(Math.cos(Math.toRadians(diffangle.doubleValue()))) BigDecimal apow = a.pow(2); apow a.pow(2) a.pow a 2 BigDecimal bpow = b.pow(2); bpow b.pow(2) b.pow b 2 cpow = apow.add(bpow).subtract(new BigDecimal(2).multiply(a).multiply(b).multiply(cos)) cpow apow.add(bpow).subtract(new BigDecimal(2).multiply(a).multiply(b).multiply(cos)) apow.add(bpow).subtract apow.add(bpow) apow.add apow bpow new BigDecimal(2).multiply(a).multiply(b).multiply(cos) new BigDecimal(2).multiply(a).multiply(b).multiply new BigDecimal(2).multiply(a).multiply(b) new BigDecimal(2).multiply(a).multiply new BigDecimal(2).multiply(a) new BigDecimal(2).multiply new BigDecimal(2) a b cos System.out.println(Math.sqrt(cpow.doubleValue())) System.out.println System.out System System.out Math.sqrt(cpow.doubleValue()) Math.sqrt Math cpow.doubleValue() cpow.doubleValue cpow String[] args args public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        BigDecimal a = sc.nextBigDecimal();
        BigDecimal b = sc.nextBigDecimal();
        BigDecimal h = sc.nextBigDecimal();
        BigDecimal m = sc.nextBigDecimal();

        // 角度を求める
        BigDecimal hangle = new BigDecimal(360).divide(new BigDecimal(12)).multiply(h).add(m.multiply(new BigDecimal(0.5)));
        BigDecimal mangle = new BigDecimal(360).divide(new BigDecimal(60)).multiply(m);
        BigDecimal diffangle = hangle.subtract(mangle).abs();
        if(diffangle.compareTo(new BigDecimal(180)) > 0){
            diffangle = new BigDecimal(360).subtract(diffangle);
        }

        BigDecimal cpow;
        if(diffangle.compareTo(new BigDecimal(90)) == 0) {
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow);
        } else {
            BigDecimal cos = new BigDecimal(Math.cos(Math.toRadians(diffangle.doubleValue())));
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow).subtract(new BigDecimal(2).multiply(a).multiply(b).multiply(cos));
        }
        System.out.println(Math.sqrt(cpow.doubleValue()));
    }
} public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        BigDecimal a = sc.nextBigDecimal();
        BigDecimal b = sc.nextBigDecimal();
        BigDecimal h = sc.nextBigDecimal();
        BigDecimal m = sc.nextBigDecimal();

        // 角度を求める
        BigDecimal hangle = new BigDecimal(360).divide(new BigDecimal(12)).multiply(h).add(m.multiply(new BigDecimal(0.5)));
        BigDecimal mangle = new BigDecimal(360).divide(new BigDecimal(60)).multiply(m);
        BigDecimal diffangle = hangle.subtract(mangle).abs();
        if(diffangle.compareTo(new BigDecimal(180)) > 0){
            diffangle = new BigDecimal(360).subtract(diffangle);
        }

        BigDecimal cpow;
        if(diffangle.compareTo(new BigDecimal(90)) == 0) {
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow);
        } else {
            BigDecimal cos = new BigDecimal(Math.cos(Math.toRadians(diffangle.doubleValue())));
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow).subtract(new BigDecimal(2).multiply(a).multiply(b).multiply(cos));
        }
        System.out.println(Math.sqrt(cpow.doubleValue()));
    }
} Main
import java.math.BigDecimal;
import java.util.Scanner;

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

        // 角度を求める
        BigDecimal hangle = new BigDecimal(360).divide(new BigDecimal(12)).multiply(h).add(m.multiply(new BigDecimal(0.5)));
        BigDecimal mangle = new BigDecimal(360).divide(new BigDecimal(60)).multiply(m);
        BigDecimal diffangle = hangle.subtract(mangle).abs();
        if(diffangle.compareTo(new BigDecimal(180)) > 0){
            diffangle = new BigDecimal(360).subtract(diffangle);
        }

        BigDecimal cpow;
        if(diffangle.compareTo(new BigDecimal(90)) == 0) {
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow);
        } else {
            BigDecimal cos = new BigDecimal(Math.cos(Math.toRadians(diffangle.doubleValue())));
            BigDecimal apow = a.pow(2);
            BigDecimal bpow = b.pow(2);
            cpow = apow.add(bpow).subtract(new BigDecimal(2).multiply(a).multiply(b).multiply(cos));
        }
        System.out.println(Math.sqrt(cpow.doubleValue()));
    }
}
