#include <bits/stdc++.h>
using namespace std;
long double r1, r2, x1, y11, x2, y2;
long double cos_rule(long double a, long double b, long double c) {
  return acos((a * a + b * b - c * c) / (2.0 * a * b)) * 2.0;
}
const long double PI = 3.141592;
int main() {
  cin >> x1 >> y11 >> r1;
  cin >> x2 >> y2 >> r2;
  long double d = sqrt((x1 - x2) * (x1 - x2) + (y11 - y2) * (y11 - y2));
  if (d >= r1 + r2) {
    cout << "0.0000000000\n";
    return 0;
  }
  if (abs(r1 - r2) >= d) {
    cout << setprecision(12) << fixed << min(r1, r2) * min(r1, r2) * PI << endl;
    return 0;
  }
  long double alpha = cos_rule(r1, d, r2);
  long double beta = cos_rule(r2, d, r1);
  cout << fixed;
  cout << setprecision(12)
       << r1 * r1 * PI * alpha / (2.0 * PI) + r2 * r2 * beta * PI / (2.0 * PI) -
              r1 * r1 * sin(alpha) / 2.0 - r2 * r2 * sin(beta) / 2.0
       << endl;
  return 0;
}
