#include <bits/stdc++.h>
using namespace std;
long double x[5], y[5], r[5];
long double PI = 3.1415926536;
int main() {
  cin >> x[1] >> y[1] >> r[1];
  cin >> x[2] >> y[2] >> r[2];
  long double d;
  d = hypotl(x[1] - x[2], y[1] - y[2]);
  if (d >= r[1] + r[2]) {
    cout << "0.0000000000000";
    return 0;
  }
  if (d == 0 || d <= abs(r[1] - r[2])) {
    cout << fixed << setprecision(20)
         << min((r[1] * r[1] * PI), (r[2] * r[2] * PI));
    return 0;
  }
  long double cosA, cosB;
  long double A, B;
  cosA = (r[1] * r[1] + d * d - r[2] * r[2]) / (long double)(2 * r[1] * d);
  cosB = (r[2] * r[2] + d * d - r[1] * r[1]) / (long double)(2 * r[2] * d);
  A = acosl(cosA);
  B = acosl(cosB);
  A *= 2;
  B *= 2;
  long double f1, f2;
  f1 = (r[1] * r[1] * PI / 2) * A / PI;
  f2 = (r[2] * r[2] * PI / 2) * B / PI;
  long double s1, s2;
  long double sinA, sinB;
  sinA = sinl(A);
  sinB = sinl(B);
  s1 = (r[1] * r[1] * sinA) / 2.0l;
  s2 = (r[2] * r[2] * sinB) / 2.0l;
  cout << fixed << setprecision(20) << f1 + f2 - s1 - s2;
}
