use proconio::input; use std::cmp::min; fn main(){ input!{ A: usize, B: usize, C: usize, D: usize, n: usize, P: i64, Q: i64, R: i64, S: i64, T: i64 } let mut ans = (0, 0, 0, 0); for a in 0..=A { for b in 0..=B { if a + b > n { continue; } let rem_n = n - a - b; let rem_t = T - P * a as i64 - Q * b as i64; if R == S { if rem_n as i64 * R != rem_t { continue; } if C + D < rem_n { continue; } let nc = min(C, rem_n); ans = (a, b, nc, rem_n - nc); println!("{} {} {} {}", ans.0, ans.1, ans.2, ans.3); return; } else if R < S { let diff = S - R; let num = rem_n as i64 * S - rem_t; if num % diff != 0 { continue; } let c = num / diff; let d = rem_n as i64 - c; if c < 0 || c > C as i64 || d < 0 || d > D as i64 { continue; } ans = (a, b, c as usize, d as usize); println!("{} {} {} {}", ans.0, ans.1, ans.2, ans.3); return; } else { let diff = R - S; let num = rem_t - rem_n as i64 * S; if num % diff != 0 { continue; } let c = num / diff; let d = rem_n as i64 - c; if c < 0 || c > C as i64 || d < 0 || d > D as i64 { continue; } ans = (a, b, c as usize, d as usize); println!("{} {} {} {}", ans.0, ans.1, ans.2, ans.3); return; } } } }