public class Euler532 {
    private static double simpson(double fa, double fm, double fb, double a, double b) {
        return (b - a) * (fa + 4 * fm + fb) / 6.0;
    }

    private static double integrandU(double u, double s) {
        double uu = u * u;
        double su = s * u;
        return Math.sqrt(1.0 - su * su) / (1.0 - uu);
    }

    private static double adaptiveSimpson(double s, double a, double b, double eps, double whole,
            double fa, double fm, double fb, int depth) {
        double m = (a + b) / 2.0;
        double l = (a + m) / 2.0;
        double r = (m + b) / 2.0;
        double fl = integrandU(l, s);
        double fr = integrandU(r, s);

        double left = simpson(fa, fl, fm, a, m);
        double right = simpson(fm, fr, fb, m, b);
        double delta = left + right - whole;

        if (depth <= 0 || Math.abs(delta) <= 15.0 * eps) {
            return left + right + delta / 15.0;
        }

        return adaptiveSimpson(s, a, m, eps / 2.0, left, fa, fl, fm, depth - 1) +
                adaptiveSimpson(s, m, b, eps / 2.0, right, fm, fr, fb, depth - 1);
    }

    private static double lengthPerBot(int n) {
        double s = Math.sin(Math.PI / n);
        double u0 = 0.999;

        double a = 0.0;
        double b = u0;
        double m = (a + b) / 2.0;
        double fa = integrandU(a, s);
        double fb = integrandU(b, s);
        double fm = integrandU(m, s);
        double whole = simpson(fa, fm, fb, a, b);
        double eps = 1e-13;

        double I = adaptiveSimpson(s, a, b, eps, whole, fa, fm, fb, 30);
        return I / s;
    }

    public static void main(String[] args) {
        int lo = 3;
        int hi = 3;
        while (lengthPerBot(hi) <= 1000.0) {
            hi *= 2;
        }

        while (lo + 1 < hi) {
            int mid = lo + (hi - lo) / 2;
            if (lengthPerBot(mid) > 1000.0) {
                hi = mid;
            } else {
                lo = mid;
            }
        }

        int n = hi;
        double per = lengthPerBot(n);
        double total = n * per;
        System.out.printf(java.util.Locale.US, "%.2f\n", total);
    }
}
