fn main() { let mut nxy = String::new(); std::io::stdin().read_line(&mut nxy).ok(); let nxy: Vec = nxy.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let n = nxy[0] as usize; let x = nxy[1]; let y = nxy[2]; let x = x * x; let x = x as usize; let y = y * y; let y = y as usize; let mut r = String::new(); std::io::stdin().read_line(&mut r).ok(); let mut r: Vec = r.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); r.sort(); let summary = r.iter().sum::(); let maxdist = summary * 2 - r[0]; let mindist = if 3 * r[r.len()-1] <= summary*2 { 0 } else { 3*r[r.len()-1] - summary*2 }; if mindist*mindist > x+y || maxdist*maxdist < x+y { println!("No"); } else { println!("Yes"); } }