/* ex4_2 KitamoriFumiya */
#include <stdio.h>
#include <math.h>
#define PI 3.14159265359
 
//  余弦定理で長針と短針の先端の距離を出力する関数
void cosine(double length_hour, double length_minute, double hour, double minute){
	double angle_hour, angle_minute, difference_angle; // angle_hour(長針の角度), angle_minute(短針の角度), difference_angle(長針と短針の角度の差)をdouble型の変数として宣言
	angle_hour = 360 * hour / 12 + 30 * minute / 60; // 長針の角度を計算
	angle_minute = 360 * minute / 60; // 短針の角度を計算
	difference_angle = angle_hour - angle_minute; // 長針と短針の角度の差を計算
	difference_angle = (difference_angle / 180) * PI ; // 角度の差を弧度法で表す
	double distance; // 長針と短針の先端の距離をdouble型の変数として宣言
	distance = length_hour * length_hour + length_minute * length_minute - 2 * length_hour * length_minute * cos(difference_angle); // 距離の2乗を余弦定理で求める
	distance = sqrt(distance); // 距離をルートに入れて戻す
	printf("%.10lf\n", distance); // 距離を少数第10位まで出力する
}
 
int main(void){
	double length_hour, length_minute, hour, minute; // length_hour(長針の長さ), length_minute(短針の長さ), hour(時間), minute(分数)をdouble型の変数として宣言
	scanf("%lf %lf %lf %lf", &length_hour, &length_minute, &hour, &minute); // length_hour, length_minute, hour, minuteを入力
	
	cosine(length_hour, length_minute, hour, minute); // 余弦定理で長針と短針の先端の距離を出力する関数を実行
	
	return 0;
}