import std.stdio; import std.array; import std.string; import std.conv; import std.algorithm; import std.typecons; import std.range; import std.random; import std.math; import std.container; import std.numeric; import std.bigint; void main() { auto input = readln.split.map!(to!real); auto vl = input[0]; auto vr = input[1]; auto d1 = readln.chomp.to!real; auto w = readln.chomp.to!real; real EPS = 0.00000001; real a = 0.0; real t1, t2, a1, a2, d2; foreach (i; 0..10^^8) { t1 = d1 / (vl + w); a1 = w * t1; if (a1 < EPS) break; a += a1; d2 = d1-(vl+vr)*t1; t2 = d2 / (vl+w); a2 = w * t2; if (a2 < EPS) break; a += a2; d1 = d2-(vl+vr)*t2; } writefln("%.7f", a); }