def solve(N: int, X: int, Y: int, Z: int) -> int: if N == 1: return 0 dp0 = [0] * (N + 1) dp1 = [0] * (N + 1) for n in range(2, N + 1): sub_cost = X + dp0[n - 1] dp1[n] = sub_cost dp0[n] = sub_cost if n % 2 == 0: cand = Y + dp1[n // 2] if cand < dp0[n]: dp0[n] = cand if n % 3 == 0: cand = Z + dp1[n // 3] if cand < dp0[n]: dp0[n] = cand return dp0[N]
2
2August 1, 2026 915