#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define M_PI 3.14159265

int main() {
    double a, b, s, shinchi;
    int count, m, n;

    // 真の値（4つの単位円で囲まれた領域）
    shinchi = M_PI - 2.0;

    count = 0;

    // nの範囲で乱数の試行回数を増やす
    for (n = 10; n < 100000; n = n * 5) {
        count = 0;
        s = 0.0;

        for (m = 0; m < n; m++) {
            // ランダムな点 (a, b) を生成
            a = (double)rand() / RAND_MAX;
            b = (double)rand() / RAND_MAX;

            // 4つの円に含まれるかチェック
            if ((a * a + b * b <= 1.0) &&            // (0, 0) を中心とする円
                ((a - 1) * (a - 1) + b * b <= 1.0) && // (1, 0) を中心とする円
                (a * a + (b - 1) * (b - 1) <= 1.0) && // (0, 1) を中心とする円
                ((a - 1) * (a - 1) + (b - 1) * (b - 1) <= 1.0)) { // (1, 1) を中心とする円
                s += 1.0;
            }
            count++;
        }

        // 面積の推定値
        s /= count;

        // 誤差の出力
        printf("%d\t%f\n", n, fabs(s - shinchi));
    }

    return 0;
}
