use proconio::input; fn main() { input! { r: usize, p: usize, q: usize, a: usize, b: usize, c: usize, d: usize, } let mut left = 0; let mut right = 1_000_000_000_usize + 1; while right - left > 1 { let mid = (left + right) / 2; let is_enough_coder = 3 * mid <= a + b + c + d; let need_to_change = mid.saturating_sub(a) + mid.saturating_sub(b) + mid.saturating_sub(c); let is_enough_rate = mid * p + need_to_change * q <= r; if is_enough_coder && is_enough_rate { left = mid; } else { right = mid; } } println!("{}", left); }