#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
const long long N = 1000000; // 1 milion punktów
// ===== Monte Carlo =====
unsigned long long seed = 123456789ULL;
auto fastRand = [&seed]() {
seed = seed * 2862933555777941757ULL + 3037000493ULL;
return (seed >> 33) * (1.0 / (1ULL << 31));
};
long long inside = 0;
// ===== Całkowanie =====
double h = 1.0 / N;
double sumRect = 0.0;
double sumTrap = 0.0;
sumTrap = 0.5 * (1.0 + 1.0 / (1.0 + 1.0));
for(long long i = 0; i < N; i++)
{
// Monte Carlo
double x = fastRand() * 2.0 - 1.0;
double y = fastRand() * 2.0 - 1.0;
if (x*x + y*y <= 1.0)
inside++;
// Prostokąty (midpoint)
double xr = (i + 0.5) * h;
sumRect += 1.0 / (1.0 + xr*xr);
// Trapezy
if (i > 0)
{
double xt = i * h;
sumTrap += 1.0 / (1.0 + xt*xt);
}
}
double piMonte = 4.0 * inside / N;
double piRect = 4.0 * h * sumRect;
double piTrap = 4.0 * h * sumTrap;
cout << fixed << setprecision(20);
cout << piMonte << "\n";
cout << piRect << "\n";
cout << piTrap << "\n";
return 0;
}