#include <bits/stdc++.h>
using namespace std;
long double PI = 3.14159265359;
int main() {
  long double x1, y1, r1, x2, y2, r2;
  cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;
  if (r1 < r2) {
    swap(x1, x2);
    swap(y1, y2);
    swap(r1, r2);
  }
  long double d = pow(pow(x2 - x1, 2) + pow(y2 - y1, 2), 0.5);
  cout.precision(15);
  if (d > r1 + r2)
    cout << "0" << endl;
  else if (d + r2 <= r1) {
    cout << PI * pow(r2, 2) << endl;
  } else {
    long double s = (d + r1 + r2) / 2;
    long double a = pow(s * (s - d), 0.5) * pow((s - r1) * (s - r2), 0.5);
    long double h = 4 * a / d;
    long double t1, t2;
    t1 = acos(1 - (pow(h, 2) / pow(r1, 2)) / 2);
    t2 = acos(1 - (pow(h, 2) / pow(r2, 2)) / 2);
    if (pow(r2, 2) + pow(d, 2) < pow(r1, 2)) t2 = 2 * PI - t2;
    long double ans = 0;
    ans += (t1 - sin(t1)) * pow(r1, 2) / 2;
    ans += (t2 - sin(t2)) * pow(r2, 2) / 2;
    cout << ans << endl;
  }
  return 0;
}
