import java.util.Arrays; import java.util.LinkedList; import java.util.Scanner; public class Main { public static long MOD = 1000000007; public static double[] run(double d, double w, double vl, double vr){ double running = 0; final double go_right_t = d / (w + vr); running += w * go_right_t; d -= go_right_t * (vl + vr); final double go_left_t = d / (w + vl); running += w * go_left_t; d -= go_left_t * (vl + vr); return new double[]{d, running}; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); final double vl = sc.nextDouble(); final double vr = sc.nextDouble(); final double d = sc.nextDouble(); final double w = sc.nextDouble(); double[] first_try = run(d, w, vl, vr); final double second_d = first_try[0]; double[] second_try = run(second_d, w, vl, vr); final double first_run = first_try[1]; final double second_run = second_try[1]; final double rate = second_run / first_run; final double limit = first_run / (1 - rate); //System.out.println(first_run + " " + second_run + " " + rate + " " + limit); System.out.printf("%.8f\n", limit); } }