#include <bits/stdc++.h>
using namespace std;
int n;
double ans;
struct node {
  double x, y, r;
  int num;
} a[1001];
bool operator<(node u, node v) {
  if (u.r == v.r) return u.x == v.x ? u.y < v.y : u.x < v.x;
  return u.r > v.r;
}
bool han(node u, node v) {
  return (u.x - v.x) * (u.x - v.x) + (u.y - v.y) * (u.y - v.y) <
         (u.r + v.r) * (u.r + v.r);
}
double cal(node u) { return u.r * u.r * acos(-1); }
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%lf%lf%lf", &a[i].x, &a[i].y, &a[i].r);
  sort(a + 1, a + n + 1);
  for (int i = 1; i < n; i++)
    for (int j = i + 1; j <= n; j++)
      if (han(a[i], a[j])) a[j].num++;
  for (int i = 1; i <= n; i++)
    if (!a[i].num)
      ans += cal(a[i]);
    else if (a[i].num & 1)
      ans += cal(a[i]);
    else
      ans -= cal(a[i]);
  printf("%.8lf\n", ans);
  return 0;
}
