#include<bits/stdc++.h>
using namespace std;
const double pi=acos(-1);
double v(double r){return 4*pi*r*r*r/3;}
int main()
{
double x1,y1,z1,r1,x2,y2,z2,r2,x,m,n,ans;
cin>>x1>>y1>>z1>>r1>>x2>>y2>>z2>>r2;
x=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2));
m=max(r1,r2);
n=min(r1,r2);
if(x>r1+r2)
ans=v(r1)+v(r2);
else if(x+n<=m)
ans=v(m);
else
ans=v(r1)+v(r2)-pi*(n+m-x)*(n+m-x)*(x*x+2*x*m-3*m*m+2*x*n+6*m*n-3*n*n)/12/x;
printf("%.7lf\n",ans);
return 0;
}
stringstream ssin(line);
int cnt = 0,p;
while(ssin >> p) Next[++cnt] = p;