use std::{cmp::Ordering, io::Read}; fn main() { let mut s = String::new(); std::io::stdin().read_to_string(&mut s).ok(); let l: Vec<_> = s.lines().collect(); let n: Vec = l[0].split(' ').flat_map(str::parse).collect(); let mut a: Vec = l[1].split(' ').flat_map(str::parse).collect(); a.sort(); let mut x = 0; for &i in &a { x += match a.binary_search_by(|a| match (i * a).cmp(&(2 * n[1])) { Ordering::Equal => Ordering::Greater, o => o, }) { Ok(j) | Err(j) => n[0] - j, }; } println!("{x}") }