Wireless Network
#include<cstdio>
#include<cmath>
using namespace std;
struct node{
int x,y,ok,fa;
}a[1005];
int d;
int find(int x){
if(x!=a[x].fa)
a[x].fa=find(a[x].fa);
return a[x].fa;
}
void uni(int x,int y){
int fx=find(x),fy=find(y);
if(fx!=fy){
a[fy].fa=fx;
}
}
int dis(int x1,int y1,int x2,int y2){
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))<=d;
}
int main(){
int n;
scanf("%d%d",&n,&d);
for(int i=1;i<=n;i++){
scanf("%d%d",&a[i].x,&a[i].y);
a[i].fa=i;
a[i].ok=0;
}
char op[10];
int p,q;
while(~scanf("%s",&op)){
if(op[0]=='O'){
scanf("%d",&p);
a[p].ok=1;
for(int i=1;i<=n;i++){
if(a[i].ok==1&&i!=p&&dis(a[p].x,a[p].y,a[i].x,a[i].y))
uni(i,p);
}
}
else{
scanf("%d%d",&p,&q);
int fx=find(p),fy=find(q);
if(fx==fy)
printf("SUCCESS\n");
else printf("FAIL\n");
}
}
return 0;
}