#include <bits/stdc++.h>
using namespace std;
long double r2, d, r1, s;
long double x1, yy1, a, x2, yy2;
long double tam;
void home() {}
void in() {
  cin >> x1 >> yy1 >> r1 >> x2 >> yy2 >> r2;
  d = sqrt((x2 - x1) * (x2 - x1) + (yy2 - yy1) * (yy2 - yy1));
  if (r1 + r2 <= d) {
    cout << 0;
    return;
  }
  long double r = min(r1, r2);
  long double PI = acos(-1);
  if (fabs(r2 - r1) >= d) {
    cout << fixed << setprecision(20) << PI * r * r;
    return;
  }
  tam = r2 * r2 + d * d - r1 * r1;
  s = 2 * r2 * d;
  a = acos(tam / s);
  s = a * r2 * r2;
  long double z = sin(a);
  long double z1 = cos(a);
  long double t = r2 * r2 * z * z1;
  s -= t;
  tam = r1 * r1 + d * d - r2 * r2;
  tam /= 2 * r1 * d;
  a = acos(tam);
  z = sin(a);
  z1 = cos(a);
  t = r1 * r1 * z * z1;
  s += a * r1 * r1 - t;
  cout << setprecision(20) << s;
}
int main() {
  home();
  in();
}
