/**
 * Sample solution for the Refract Facts problem.
 *
 */

import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.util.logging.ConsoleHandler;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;


public class Refract_sjz {


	double requiredPrecision = 0.001 * Math.PI / 180.0;


	void solve (Scanner in)
	{
		double d = in.nextDouble();
		double h = in.nextDouble();
		double x = in.nextDouble();
		double n1 = in.nextDouble();
		double n2 = in .nextDouble();

		while (n1 >= 1.0) {

			double phiMax= Math.PI / 2.0;
			double phiMin = 0.0;
			double phi;

			while (phiMax - phiMin > requiredPrecision)
			{
				phi = (phiMin + phiMax) / 2.0;
				double x1 = d / Math.tan(phi);
				double theta1 = Math.PI / 2.0 - phi;
				double theta2 = Math.asin((n2 / n1) * Math.sin(theta1));
				double x2 = h * Math.tan(theta2);
				if (x1 + x2 > x)
				{
					// phi is too shallow
					phiMin = phi;
				}
				else
				{
					// phi is too steep
					phiMax = phi;
				}
			}
			phi = (phiMin + phiMax) / 2.0;
			double phiInDegrees = 180.0 * phi / Math.PI;
			System.out.printf("%.2f%n", phiInDegrees);

			d = in.nextDouble();
			h = in.nextDouble();
			x = in.nextDouble();
			n1 = in.nextDouble();
			n2 = in .nextDouble();

		}
	}








	/**
	 * Run the program.  Because redirecting input is awkward in Eclipse,
	 *    if a command line parameter is given, it is treated as the name
	 *    of an input file. If no command parameter is given, input is taken
	 *    from System.in.
	 * @param args  Command line parameters
	 * @throws IOException
	 */
	public static void main (String[] args) throws IOException
	{
		Scanner input;
		if (args.length == 0)
			input = new Scanner(System.in);
		else
			input = new Scanner(new File(args[0]));

		new Refract_sjz().solve(input);

		input.close();
	}
}