88AC - ABC074C: Sugar Water
ABC074-C (300 points)
問題
- 操作 1: ビーカーに水を 100A [g] 入れる。
- 操作 2: ビーカーに水を 100B [g] 入れる。
- 操作 3: ビーカーに砂糖を C [g] 入れる。
- 操作 4: ビーカーに砂糖を D [g] 入れる。
操作 1, 2, 3, 4 をそれぞれ i, j, k, l 回行って濃度が最大の砂糖水を作る.
ただし,
- 砂糖の溶け残りは許されない(水 100 [g] に砂糖は E [g] 以下)
- 全体の重さは F [g] 以下
- は整数
方針
- 探索範囲が狭そうなので, とりあえず全探索
# input A, B, C, D, E, F = map(int, input().split()) temp = 0 ans1, ans2 = 100 * A, 0 for i in range(31): for j in range(31): for k in range(101): for l in range(101): w = 100 * A * i + 100 * B * j s = C * k + D * l if w == 0: break if s > E * (A * i + B * j): break if w + s > F: break if s / (w + s) > temp: temp = s / (w + s) ans1 = w + s ans2 = s print(ans1, ans2)