public class Euler431 {
    static final double PI = Math.PI;

    static double integralDistance(double x, double radius, int simpsonN) {
        double a = 0.0;
        double b = 2.0 * PI;
        double h = (b - a) / simpsonN;

        double acc = 0.0;
        for (int i = 0; i <= simpsonN; i++) {
            double phi = a + h * i;
            double sinp = Math.sin(phi);
            double cosp = Math.cos(phi);

            double val = radius * radius - x * x * sinp * sinp;
            double rad = Math.sqrt(Math.max(0.0, val));

            double s = -x * cosp + rad;
            double f = s * s * s;

            int coeff = 2;
            if (i == 0 || i == simpsonN) {
                coeff = 1;
            } else if (i % 2 == 1) {
                coeff = 4;
            }

            acc += coeff * f;
        }

        return (h / 3.0) * acc / 3.0;
    }

    static double wastedVolume(double x, double radius, double alphaDeg, int simpsonN) {
        double tanAlpha = Math.tan(alphaDeg * PI / 180.0);
        return tanAlpha * integralDistance(x, radius, simpsonN);
    }

    static java.util.List<Double> solveXValues(double radius, double alphaDeg, int simpsonN) {
        double v0 = wastedVolume(0.0, radius, alphaDeg, simpsonN);
        double vr = wastedVolume(radius, radius, alphaDeg, simpsonN);

        int kLo = (int) Math.ceil(Math.sqrt(v0) - 1e-14);
        int kHi = (int) Math.floor(Math.sqrt(vr) + 1e-14);

        java.util.List<Double> xs = new java.util.ArrayList<>();
        for (int k = kLo; k <= kHi; k++) {
            double target = (double) k * (double) k;
            if (target < v0 - 1e-12 || target > vr + 1e-12)
                continue;

            double lo = 0.0;
            double hi = radius;
            for (int it = 0; it < 120; it++) {
                double mid = (lo + hi) * 0.5;
                double vm = wastedVolume(mid, radius, alphaDeg, simpsonN);
                if (vm < target)
                    lo = mid;
                else
                    hi = mid;
            }
            xs.add((lo + hi) * 0.5);
        }

        return xs;
    }

    public static String solve() {
        double radius = 6.0;
        double alphaDeg = 40.0;
        int simpsonN = 4096;

        java.util.List<Double> xs = solveXValues(radius, alphaDeg, simpsonN);
        double sum = 0.0;
        for (double x : xs) {
            sum += x;
        }

        return String.format(java.util.Locale.US, "%.9f", sum);
    }

    public static void main(String[] args) {
        System.out.println(solve());
    }
}
