1 #include<bits/stdc++.h>
2 using namespace std;
3 #define R register int
4 #define rep(i,a,b) for(R i=a;i<=b;i++)
5 #define Rep(i,a,b) for(R i=a;i>=b;i--)
6 #define ms(i,a) memset(a,i,sizeof(a))
7 #define LL long long
8 #define gc() getchar()
9 #define sqr(x) ((x)*(x))
10 template<class T>void read(T &x){
11 x=0; char c=0; int w=0;
12 while (!isdigit(c)) w+=c==‘-‘,c=gc();
13 while (isdigit(c)) x=x*10+(c^48),c=gc();
14 if(w) x=-x;
15 }
16 int const maxn=1050+3;
17 int n,x[maxn],y[maxn],xt,yt,r[maxn],a[maxn][maxn],vis[maxn],tin[maxn],tout[maxn],sum,id;
18 double ans;
19 int dist(int i,int j){return sqr(x[i]-x[j])+sqr(y[i]-y[j]);}
20 void dfs(int o,int fa){
21 tin[o]=++sum;
22 rep(i,1,n) if(a[o][i] && i!=fa) dfs(i,o);
23 tout[o]=++sum;
24 }
25 int ancestor(int x,int y){
26 return tin[x]<=tin[y] && tout[x]>=tout[y];
27 }
28 void dfs2(int o,int fa,double v){
29 ans+=fabs(v);
30 rep(i,1,n) if(a[o][i] && i!=fa && ancestor(i,id)) dfs2(i,o,1.0*r[o]/r[i]*v);
31 }
32 int main(){
33 read(n); read(xt); read(yt);
34 rep(i,1,n) read(x[i]),read(y[i]),read(r[i]);
35 rep(i,1,n) rep(j,i+1,n) if(dist(i,j)==sqr(r[i]+r[j])) a[i][j]=a[j][i]=1;
36 rep(i,1,n) if(x[i]==xt && y[i]==yt) id=i;
37 rep(i,1,n) if(x[i]==0 && y[i]==0) dfs(i,i);
38 rep(i,1,n) if(x[i]==0 && y[i]==0) dfs2(i,i,10000);
39 cout<<int(ans)<<endl;
40 return 0;
41 }