#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
struct node
{
int x;
int y;
int r;
}p[100010];
struct node1
{
double l;
double r;
}a[100010];
const double PI = acos(-1);
bool cmp(node1 x,node1 y)
{
if(x.l!=y.l)
return x.l<y.l;
return x.r<y.r;
}
signed main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>p[i].x>>p[i].y>>p[i].r;
for(int i=1;i<=n;i++)
{
double a1 = atan2(p[i].y,p[i].x);
double dis = sqrtl(p[i].x*p[i].x+p[i].y*p[i].y);
double a2 = asin(p[i].r*1.0/(dis));
double ans1 = a1-a2;
double ans2 = a1+a2;
a[i]={ans1,ans2};
}
sort(a+1,a+1+n,cmp);
double p=0;
if(a[1].l>0)
p+=a[1].l;
for(int i=2;i<=n;i++)
{
if(a[i].l>a[i-1].r)
p+=a[i].l-a[i-1].r;
}
if(a[n].r<PI/2)
p+=PI/2-a[n].r;
printf("%.3lf\n",p/PI*2);
return 0;
}