use std::collections::BinaryHeap; fn main() { let mut nabxy = String::new(); std::io::stdin().read_line(&mut nabxy).ok(); let nabxy: Vec = nabxy.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let n = nabxy[0]; let mut a = nabxy[1]; let b = nabxy[2]; let x = nabxy[3]; let y = nabxy[4]; let mut h = String::new(); std::io::stdin().read_line(&mut h).ok(); let h: Vec = h.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let mut pque = BinaryHeap::new(); for &v in h.iter() { pque.push(v); } while !pque.is_empty() && a > 0 { let val = pque.pop().unwrap(); if val > x { pque.push(val - x); } a -= 1; } let bsum = b * y; let summary = pque.iter().sum::(); if bsum >= summary { println!("Yes"); } else { println!("No"); } }