use proconio::input; use std::cmp::min; fn main() { input!{ a:isize, b:isize, c:isize, d:isize, n:isize, p:isize, q:isize, r:isize, s:isize, t:isize, } let mut x_c:isize; let mut x_d:isize; let mut tmp1:isize = 0; let mut tmp2:isize = 0; let mut flag:bool = false; let mut ans:[isize;4] = [10001, 10001, 10001, 10001]; for x_b in 0..=(b as isize) { if x_b*q > t || x_b > n{ break; } for x_a in 0..=(a as isize) { tmp1 = n - x_a - x_b; tmp2 = t - (p*x_a) - (q*x_b); if tmp2 < 0 || tmp1 < 0 { break; } if r!=s { // x_dが整数にならないパターン if ((tmp1*r) - tmp2)%(r-s)!=0 { continue; } x_d = ((tmp1*r) - tmp2) / (r-s); x_c = tmp1 - x_d; } else { if tmp1*r!=tmp2 { continue; } x_c = min(r, tmp1); x_d = tmp1 - x_c; } if 0<=x_c && x_c<=c && 0<=x_d && x_d<=d { if r*x_c + s*x_d == tmp2 { ans = [x_a, x_b, x_c, x_d]; flag = true; break; } } } if flag { break; } } println!("{} {} {} {}",ans[0],ans[1],ans[2],ans[3]); }