/*ex4_2
ryo_1129*/
#include<stdio.h>
#include<math.h>
//プロトタイプ宣言
double distance(int length_hour,int length_minute,double rad);

int main(void){
    //変数宣言
    int A,B,H,M;
    double radhour,radminute,rad,length;
    //入力
    scanf("%d %d %d %d",&A,&B,&H,&M);
    //演習率πを決める。
    const double pi = 3.14159265358979;
    //時針、分針を求める。
    radminute = 2*pi*M/60;
    radhour = 2*pi*(H*60+M)/720;
    //角度の差を求める。cos(θ)=cos(-θ)に注意
    rad = radhour - radminute;
    //長さを求める。関数の呼び出し
    length = distance(A,B,rad);
    //出力
    printf("%.9f\n",length);
    return 0;
}
//時針と分針の長さと角度から端点間の長さを求める。引数、時針の長さ、分針の長さ、それらのなす角度
double distance(int length_hour,int length_minute,double rad){
    double length;//変数宣言
    //余弦定理を用いて端点間の長さを求める
    length = sqrt(pow(length_hour,2)+pow(length_minute,2)-2*length_hour*length_minute*cos(rad));
    // 端点間の長さを返す
    return length;
}