問題
C – 節制
回答
100点回答
解説を見ると全く難しくないんだが、問題を見て日に沿ってループと決めてかかってしまう視野の狭い自分には解けなかった。
解説のスライドp18以後、分かりやすいです。
N, H = map(int, input().split())
A, B, C, D, E = map(int, input().split())
ans = float('inf')
for i in range(N+1):
for j in range(N+1):
hungry = H + B*i + D*j - (N-i-j)*E
if hungry > 0:
cost = A*i + C*j
ans = min(ans, cost)
print(ans)
101点回答
N, H = map(int, input().split())
A, B, C, D, E = map(int, input().split())
ans = float('inf')
for i in range(N+1):
j = ((N - i)*E - H - B*i) // (D + E) + 1
if j < 0:
j = 0
if (H + B*i + D*j - (N-i-j)*E) > 0:
cost = A*i + C*j
ans = min(ans, cost)
print(ans)