
/**//*
題意:求相交兩個的管體積 有可能 2R > H
= 兩個管體積 - 公共體積
求公共體積,用積分,分2R <= H, 2R > H
下面只算第一相象的那1/8
1)2R <= H
靠近中心的那些相交區域的高是√(R^2-y^2) ,底部的長也為√(R^2-y^2)
R
V = ∫ √(R^2-y^2) * √(R^2-y^2) * dy = 2/3R^3
0
2)2R > H
這時,靠近中心的那些相交區域的高就不是√(R^2-y^2) 而是H/2
答案就為 中間的長方體 + 外部的弧形局域(也即上面的積分公式)
R
V = (H/2)^2√(R^2-(H/2)^2) + ∫ √(R^2-y^2) * √(R^2-y^2) * dy
√(R^2-(H/2)^2)
= (H/2)^2√(R^2-(H/2)^2)
+ 2/3R^3 - (R^2√(R^2-(H/2)^2) - ((√(R^2-(H/2)^2))^3)/3)
*/
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const double PI = acos(-1.0);
int main()

{
// freopen("in","r",stdin);
double R,H;
while(~scanf("%lf%lf",&R,&H))
{
double ans = 2*PI*R*R*H,tmp;
if(2*R <= H)
{
tmp = R*R*R*2/3;
}
else
{
double S = sqrt(R*R-(H/2)*(H/2));
tmp = (H/2)*(H/2)*S + R*R*R*2/3 - (R*R*S - S*S*S/3);
}
printf("%.4f\n",ans -= 8*tmp);
}
return 0;
}

