use proconio::input; use proconio::fastout; fn pow(x: isize, k: usize) -> isize { let mut ret = 1; for _ in 0..k { ret *= x; } return ret; } #[fastout] #[allow(non_snake_case)] fn main() { input! { (N, K): (usize, isize), H: [usize; N], } let mut vec = Vec::new(); for _ in 0..N { input! { (X, Y): (isize, isize), } vec.push((X, Y)); } let mut flg = vec![true; N]; for i in 0..N { for j in 0..N { if H[i] < H[j] && pow((vec[i].0 - vec[j].0).abs(), 2) + pow((vec[i].1 - vec[j].1).abs(), 2) <= pow(K, 2) { flg[i] = false; } } } println!("{}", flg.iter().filter(|&&x| x).count()); }