输入样例
5
0 0
1 1
0 1
1 0
2 2
1
输出样例
1
1
1
1
0
代码
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[] x = new int[n], y = new int[n];
int[] bh = new int[n]; //每个修仙者的编号用来记录是否受到诅咒
for (int i = 0; i < n; i++) {
x[i] = scan.nextInt();
y[i] = scan.nextInt();
}
int d = scan.nextInt();
bh[0] = 1; //第一个修仙者,收到诅咒赋值为1
dfs(x, y, bh, 0, d);
for (int num : bh) {
System.out.println(num);
}
}
static void dfs(int[] x, int[] y, int[] bh, int start, int d) {
int n = bh.length;
int x0 = x[start], y0 = y[start];
for (int i = 0; i < n; i++) {
if (bh[i] == 1 || start == i) continue; //已收到诅咒
int x1 = x[i], y1 = y[i];
int l = (x0 - x1) * (x0 - x1) + (y0 - y1) * (y0 - y1);
if (l <= d * d) {
bh[i] = 1;
dfs(x, y, bh, i, d);
}
}
}
}