constdouble pi =acos(-1);typedefstruct{double x, y, z, r;}Point;
Point a[5];//两点之间距离doubledis(Point p, Point q){double ans =sqrt((p.x - q.x)*(p.x - q.x)+(p.y - q.y)*(p.y - q.y)+(p.z - q.z)*(p.z - q.z));return ans;}double ans =0;// 交double d =dis(x, y);if(d >= x.r + y.r){;}elseif(d + y.r <= x.r){
ans +=(4.0/3)*pi*y.r*y.r*y.r;}elseif(d + x.r <= y.r){
ans +=(4.0/3)*pi*x.r*x.r*x.r;}else{double co =(x.r*x.r + d * d - y.r*y.r)/(2.0*d*x.r);double h = x.r*(1- co);
ans +=(1.0/3)*pi*(3.0*x.r - h)*h*h;
co =(y.r*y.r + d * d - x.r*x.r)/(2.0*d*y.r);
h = y.r*(1- co);
ans +=(1.0/3)*pi*(3.0*y.r - h)*h*h;}printf("%.10lf\n", ans);