#include #include #include #include double S(double x, double R) { return R * R / 2.0 * std::atan2(std::sqrt(R * R - x * x), x) - 0.5 * x * std::sqrt(R * R - x * x); } double circleRectArea(double x, double y, double R) { double x0 = std::min(std::fabs(x), std::sqrt(std::max(0.0, R * R - y * y))); double x1 = std::min(std::fabs(x), R); double sx = (x < 0) ? -1 : 1; double sy = (y < 0) ? -1 : 1; return sx * x0 * y + sx * sy * (S(x0, R) - S(x1, R)); } double circleRectArea(double x1, double y1, double x2, double y2, double R) { return circleRectArea(x2, y2, R) - circleRectArea(x2, y1, R) - circleRectArea(x1, y2, R) + circleRectArea(x1, y1, R); } int main() { int n, r, w, h; std::cin >> n >> r >> w >> h; double tot = 0.0; for(int i=0; i> x >> y >> val; double area = circleRectArea(w-x, h-y, -x, -y, r); tot += area * val; } double answer = tot / double(h*w); std::cout << std::setprecision(30) << answer << std::endl; }