提出 #31781006


ソースコード 拡げる

import numpy as np
n, W = map(int, input().split())
inf = pow(10, 10)
V = 10**3
dp = np.full((n+1, n*V+1), inf)
dp[0, 0] = 0

for i in range(n):
    w, v = map(int, input().split())
    np.minimum(dp[i, v:], dp[i, :-v]+w, out = dp[i+1, v:])
    dp[i+1, :v] = dp[i, :v]

print(max(np.where(dp[n] <= W)[0]))

提出情報

提出日時
問題 E - Knapsack 2
ユーザ denovo2021
言語 Python (3.8.2)
得点 100
コード長 317 Byte
結果 AC
実行時間 162 ms
メモリ 106424 KiB

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 21
セット名 テストケース
All 0_00, 0_01, 0_02, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17
ケース名 結果 実行時間 メモリ
0_00 AC 112 ms 26972 KiB
0_01 AC 110 ms 27008 KiB
0_02 AC 109 ms 27128 KiB
1_00 AC 109 ms 26960 KiB
1_01 AC 161 ms 106152 KiB
1_02 AC 162 ms 106424 KiB
1_03 AC 154 ms 105900 KiB
1_04 AC 155 ms 106196 KiB
1_05 AC 154 ms 104516 KiB
1_06 AC 156 ms 106312 KiB
1_07 AC 154 ms 104632 KiB
1_08 AC 155 ms 104580 KiB
1_09 AC 150 ms 106144 KiB
1_10 AC 152 ms 104440 KiB
1_11 AC 154 ms 104484 KiB
1_12 AC 151 ms 101408 KiB
1_13 AC 154 ms 105992 KiB
1_14 AC 153 ms 104708 KiB
1_15 AC 153 ms 106024 KiB
1_16 AC 160 ms 106240 KiB
1_17 AC 155 ms 105996 KiB