fn main() { let v1: Vec = input_line(); let (n, mut a, mut b, x, y) = (v1[0] as usize, v1[1], v1[2], v1[3], v1[4]); let mut hv: Vec = input_line(); let mut ind = 0_usize; 'outer: loop { if hv[ind] <= x && a > 0 { hv[ind] -= x; a -= 1; ind += 1; if ind == n { break 'outer; } } else if b > 0 { let mut p = y; loop { if hv[ind] >= p { hv[ind] -= p; break; } else { p -= hv[ind]; hv[ind] = 0; ind += 1; if ind == n { break 'outer; } } } b -= 1; } else if a > 0 { hv[ind] -= x; a -= 1; if hv[ind] <= 0 { hv[ind] = 0; ind += 1; if ind == n { break 'outer; } } } if a == 0 && b == 0 { break; } } println!("{}", if hv[n - 1] <= 0 { "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() }