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] 以下
  •  0 \leq A < B \leq 30
  •  0 \leq C < D \leq 30
  •  0 \leq E \leq 100
  •  100A \leq F \leq 3000
  •  A, B, C, D, E, F は整数
方針
  • 探索範囲が狭そうなので, とりあえず全探索
# 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)