import sys input_data = sys.stdin.read().strip().split() if not input_data: sys.exit(0) A, B, C, D, N, P, Q, R, S, T = map(int, input_data) # 変数の意味: # A: 難易度1の問題総数,P: 解くのにかかる分数 # B, Q: 難易度1.5 # C, R: 難易度2 # D, S: 難易度2.5 # N: 合計解いた問題数,T: 総使用時間 found = False for n_a in range(0, min(A, N) + 1): for n_b in range(0, min(B, N - n_a) + 1): rem = N - n_a - n_b # 残りを難易度2と2.5から解く # 残りの問題からかかる時間は, n_c*R+(rem-n_c)*S = rem*S + n_c*(R-S) # よって n_c*(R-S) = T - (n_a*P+n_b*Q) - rem*S diff = T - (n_a * P + n_b * Q) - rem * S # n_cのとりうる範囲: 0 <= n_c <= C かつ n_d = rem - n_c <= D # つまり n_c >= max(0, rem-D) と n_c <= min(C, rem) low_nc = max(0, rem - D) high_nc = min(C, rem) if R - S == 0: # この場合,左辺は常に0なので diff==0 でなければならない if diff != 0: continue # diff==0なら,low_nc <= n_c <= high_nc の任意の n_c でよい n_c = low_nc # とりあえずlow_ncを選ぶ n_d = rem - n_c print(n_a, n_b, n_c, n_d) sys.exit(0) else: if diff % (R - S) != 0: continue n_c = diff // (R - S) if low_nc <= n_c <= high_nc: n_d = rem - n_c # n_dが条件内かどうか(n_d<=D は自動的に満たすはず) if 0 <= n_d <= D: print(n_a, n_b, n_c, n_d) sys.exit(0)