import
java.util.ArrayList;
import
java.util.List;
public
class
GFG {
static
void
dfs(
int
v, List<Integer> vis,
int
[][] A,
int
N,
int
D) {
vis.set(v,
1
);
for
(
int
i =
0
; i < N; i++) {
if
(i == v) {
continue
;
}
int
dist = (A[v][
0
] - A[i][
0
]) * (A[v][
0
] - A[i][
0
]) +
(A[v][
1
] - A[i][
1
]) * (A[v][
1
] - A[i][
1
]);
if
(dist <= (D * D) && vis.get(i) ==
0
) {
dfs(i, vis, A, N, D);
}
}
}
static
String canPossibleToVisit(
int
[][] A,
int
N,
int
D) {
StringBuilder ans =
new
StringBuilder();
List<Integer> vis =
new
ArrayList<>(N);
for
(
int
i =
0
; i < N; i++) {
vis.add(
0
);
}
dfs(
0
, vis, A, N, D);
for
(
int
i =
0
; i < N; i++) {
if
(vis.get(i) ==
1
) {
ans.append(
'1'
);
}
else
{
ans.append(
'0'
);
}
}
return
ans.toString();
}
public
static
void
main(String[] args) {
int
N =
4
, D =
5
;
int
[][] A = { {
2
, -
1
}, {
3
,
1
}, {
8
,
8
}, {
0
,
5
} };
System.out.println(canPossibleToVisit(A, N, D));
int
N1 =
3
, D1 =
1
;
int
[][] A1 = { {
0
,
0
}, { -
1000
, -
1000
}, {
1000
,
1000
} };
System.out.println(canPossibleToVisit(A1, N1, D1));
}
}