Submission #30845057
Source Code Expand
n, s = map(int, input().split())
w = [0] * n
v = [0] * n
for i in range(n):
w[i], v[i] = map(int, input().split())
INF = 10 ** 18
sum_v = sum(v)
dp = [[INF] * (sum_v + 1) for i in range(n + 1)]
dp[0][0] = 0
for i in range(n):
for j in range(sum_v + 1):
if j - v[i] >= 0:
dp[i + 1][j] = min(dp[i][j], dp[i][j - v[i]] + w[i])
else:
dp[i + 1][j] = dp[i][j]
answer = 0
for i in range(sum_v + 1):
if dp[n][i] <= s:
answer = i
print(answer)
Submission Info
| Submission Time | |
|---|---|
| Task | E - Knapsack 2 |
| User | Pro_ktmr |
| Language | PyPy3 (7.3.0) |
| Score | 100 |
| Code Size | 513 Byte |
| Status | AC |
| Exec Time | 292 ms |
| Memory | 148160 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| 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 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00 | AC | 292 ms | 69804 KiB |
| 0_01 | AC | 54 ms | 61752 KiB |
| 0_02 | AC | 48 ms | 61636 KiB |
| 1_00 | AC | 52 ms | 61544 KiB |
| 1_01 | AC | 186 ms | 146420 KiB |
| 1_02 | AC | 134 ms | 106660 KiB |
| 1_03 | AC | 194 ms | 147264 KiB |
| 1_04 | AC | 132 ms | 106404 KiB |
| 1_05 | AC | 188 ms | 145836 KiB |
| 1_06 | AC | 129 ms | 106004 KiB |
| 1_07 | AC | 188 ms | 145676 KiB |
| 1_08 | AC | 136 ms | 106060 KiB |
| 1_09 | AC | 192 ms | 147316 KiB |
| 1_10 | AC | 132 ms | 105740 KiB |
| 1_11 | AC | 191 ms | 146380 KiB |
| 1_12 | AC | 127 ms | 103468 KiB |
| 1_13 | AC | 191 ms | 147304 KiB |
| 1_14 | AC | 127 ms | 102572 KiB |
| 1_15 | AC | 191 ms | 146996 KiB |
| 1_16 | AC | 136 ms | 110596 KiB |
| 1_17 | AC | 196 ms | 148160 KiB |