import java.util.*; public class e { static int n = 0; static double p = 0.0, s = 0.0, v = 0.0; static double phi = 1.618; public static void main(String[] args) { Scanner scan = new Scanner(System.in); n = scan.nextInt(); p = scan.nextDouble(); s = scan.nextDouble(); v = scan.nextDouble(); double a = 0.0, b = 100; while (b - a > 1e-12) { double c = a + .3 * (b - a); double d = b - .3 * (b - a); if (time(d) > time(c)) { b = d; } else { a = c; } } System.out.printf("%15." + (14 - numIntDigits(time(a))) + "f %15." + (14 - numIntDigits(a)) + "f\n", time(a), a); /*if (derivative(left) >= 0) System.out.println("left is bad"); if (derivative(right) <= 0) System.out.println("right is bad"); for (double i = 0.0; i < 20; i++) System.out.println(i + " " + derivative(i));*/ /*while (right - left > 1e-6) { double c = (right + left) / 2; if (derivative(c) > 0) right = c; else left = c; } double c = (right + left) / 2; while (true) { double delta = 1e-8; if (time(c + delta) > time(c) && time(c - delta) > time(c)) break; if (time(c + delta) < time(c)) c = c + delta; else c = c - delta; }*/ //System.out.printf("%15." + (14 - numIntDigits(time(c))) + "f %15." + (14 - numIntDigits(c)) + "f\n", time(c), c); //System.out.println(time(15.598261092309) + " " + 15.598261092309); } public static int numIntDigits(double d) { int answer = 0; while (Math.pow(10, answer) <= d) answer++; return answer; } public static double time(double c) { double time1 = n * Math.pow(Math.log10(n) / Math.log10(2), c * Math.sqrt(2)) / p / 1e9; double time2 = s / v * (1 + 1/c); return time1 + time2; } public static double derivative(double c) { double delta = 1e-12; return (time(c + delta) - time(c - delta)) / 2 / delta; } }