public class Euler476 {

    private static double solveAverage(int n) {
        double kPi = 3.141592653589793238462643383279502884;
        double total = 0.0;
        double cComp = 0.0;
        long count = 0;

        for (int a = 1; a <= n; ++a) {
            for (int b = a; b <= n - a; ++b) {
                int cMax = a + b - 1;
                for (int c = b; c <= cMax; ++c) {
                    double p = a + b + c;
                    double x = p - 2.0 * a;
                    double y = p - 2.0 * b;
                    double z = p - 2.0 * c;

                    double r2 = (x * y * z) / (4.0 * p);

                    double sinHalfA = Math.sqrt((y * z) / (4.0 * b * c));
                    double sinHalfB = Math.sqrt((x * z) / (4.0 * a * c));

                    double qA = (1.0 - sinHalfA) / (1.0 + sinHalfA);
                    double qB = (1.0 - sinHalfB) / (1.0 + sinHalfB);

                    double extra2 = qA * qA;
                    double extra3 = Math.max(qB * qB, extra2 * extra2);
                    double area = kPi * r2 * (1.0 + extra2 + extra3);

                    double yComp = area - cComp;
                    double tComp = total + yComp;
                    cComp = (tComp - total) - yComp;
                    total = tComp;

                    count++;
                }
            }
        }

        return total / count;
    }

    public static void main(String[] args) {
        int n = 1803;
        double ans = solveAverage(n);
        System.out.printf(java.util.Locale.US, "%.5f\n", ans);
    }
}
