#include <bits/stdc++.h>
using namespace std;
long double x1, x2, Y1, y2, r1, r2, dis, a1, a2, s1, s2;
signed main() {
  cin >> x1 >> Y1 >> r1 >> x2 >> y2 >> r2;
  dis = sqrt((x2 - x1) * (x2 - x1) + (y2 - Y1) * (y2 - Y1));
  cout.precision(9);
  if (r1 + r2 <= dis) {
    cout << 0;
    return 0;
  }
  if (abs(r1 - r2) >= dis && r1 >= r2) {
    cout << r2 * r2 * 3.1415926535897932384;
    return 0;
  }
  if (abs(r1 - r2) >= dis && r2 >= r1) {
    cout << r1 * r1 * 3.1415926535897932384;
    return 0;
  }
  a1 = acos((r1 * r1 + dis * dis - r2 * r2) / (2 * r1 * dis)) * 2;
  a2 = acos((r2 * r2 + dis * dis - r1 * r1) / (2 * r2 * dis)) * 2;
  s1 = (long double)0.5 * a1 * r1 * r1 - r1 * r1 * sin(a1) * 0.5;
  s2 = (long double)0.5 * a2 * r2 * r2 - r2 * r2 * sin(a2) * 0.5;
  cout << s1 + s2;
}
