問題
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)