제출 #1178547

#제출 시각아이디문제언어결과실행 시간메모리
1178547GoBananas69Knapsack (NOI18_knapsack)Pypy 3
49 / 100
302 ms327680 KiB
import sys
def main() -> None:
    s, n = map(int, input().split())
    if n == 1:
        a, b, c = map(int, input().split())
        x = s // b
        x = min(x, c)
        print(a * x)
        return
    v, w = [], []
    for i in range(n):
        a, b, m = map(int, input().split())
        for j in range(m):
            v.append(a)
            w.append(b)
    n = len(v)
    dp = [[0] * (s + 1) for _ in range(n + 1)]

    for i in range(1, n + 1):
        for j in range(s + 1):
            if w[i - 1] > j:
                dp[i][j] = dp[i - 1][j]
            else:
                dp[i][j] = max(dp[i - 1][j], v[i - 1] + dp[i - 1][j - w[i - 1]])
    print(dp[n][s])


# sys.stdin = open('input.txt', 'r')
# sys.stdout = open('output.txt', 'w')
# sys.stderr = open('output.txt', 'w')
main()

컴파일 시 표준 출력 (stdout) 메시지

Compiling 'knapsack.py'...

=======
  adding: __main__.pyc (deflated 39%)

=======
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...