fn main() { let v1: Vec = input_line(); let (n, mut a, b, x, y) = (v1[0] as usize, v1[1], v1[2], v1[3], v1[4]); let mut hv: Vec = input_line(); hv.sort(); let mut idx_defeat = 0_usize; let mut b_total = b * y; while b > 0 && idx_defeat < n { if b_total >= hv[idx_defeat] { b_total -= hv[idx_defeat]; hv[idx_defeat] = 0; idx_defeat += 1; } else { hv[idx_defeat] -= b_total; break; } } while a > 0 && idx_defeat < n { while hv[idx_defeat] > 0 && a > 0 { hv[idx_defeat] -= x; a -= 1; if hv[idx_defeat] < 0 { idx_defeat += 1; break; } } } println!("{}", if idx_defeat == n { "Yes" } else { "No" }); } fn input_line() -> Vec { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); s.trim() .split_whitespace() .map(|e| e.parse().ok().unwrap()) .collect() }