#include<bits/stdc++.h>
using namespace std;
const int maxn=1010;
const double pi=acos(-1);
double px[maxn],py[maxn],pr[maxn];
int n,vis[maxn];
pair<double,double>sta[maxn<<1];
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%lf%lf%lf",pr+i,px+i,py+i);
double dis,tmpx,radx,rady,k;
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
dis=sqrt((px[j]-px[i])*(px[j]-px[i])+(py[j]-py[i])*(py[j]-py[i]));
if(dis+pr[i]<=pr[j]){
vis[i]=1;
}
}
}
int tot;
double ans=0;
for(int i=1;i<=n;i++){
if(vis[i]) continue;
tot=0;
for(int j=i+1;j<=n;j++){
if(vis[j]) continue;
dis=sqrt((px[j]-px[i])*(px[j]-px[i])+(py[j]-py[i])*(py[j]-py[i]));
if(dis+pr[i]-pr[j]<=0) continue;
if(dis+pr[j]-pr[i]<=0) continue;
if(pr[i]+pr[j]-dis<=0) continue;
tmpx=(pr[i]*pr[i]-pr[j]*pr[j]+dis*dis)/(2*dis);
radx=acos(tmpx/pr[i]);
if(px[i]==px[j]){
if(py[i]<py[j]) rady=pi/2;
else rady=pi*3/2;
}
else{
k=(py[j]-py[i])/(px[j]-px[i]);
rady=acos(1/(sqrt(1+k*k)));
if(py[j]<py[i]) rady=pi*2-rady;
}
if(rady-radx<0){
sta[++tot]=make_pair(rady-radx+pi*2,pi*2);
sta[++tot]=make_pair(0,rady+radx);
}
else if(rady+radx>pi*2){
sta[++tot]=make_pair(rady-radx,pi*2);
sta[++tot]=make_pair(0,rady+radx-pi*2);
}
else{
sta[++tot]=make_pair(rady-radx,rady+radx);
}
}
sort(sta+1,sta+1+tot);
double last=0,sum=pi*2;
for(int j=1;j<=tot;j++){
if(last<sta[j].first) sum-=sta[j].second-sta[j].first;
else if(last<sta[j].second) sum-=sta[j].second-last;
last=max(last,sta[j].second);
}
ans+=sum*pr[i];
}
printf("%.3f\n",ans);
return 0;
}