Submission #3938037
Source Code Expand
N, W = map(int, input().split())
V = 10**5
INF = 10**18
dp = [INF]*(V+1)
dp[0] = 0
for i in range(N):
w, v = map(int, input().split())
for j in range(V, v-1, -1):
if dp[j-v] + w <= W:
dp[j] = min(dp[j], dp[j-v] + w)
for i in range(V, -1, -1):
if dp[i] < INF:
print(i)
break
Submission Info
| Submission Time | |
|---|---|
| Task | E - Knapsack 2 |
| User | yaketake08 |
| Language | PyPy3 (2.4.0) |
| Score | 100 |
| Code Size | 336 Byte |
| Status | AC |
| Exec Time | 279 ms |
| Memory | 41836 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 | 172 ms | 40048 KiB |
| 0_01 | AC | 164 ms | 39408 KiB |
| 0_02 | AC | 170 ms | 39664 KiB |
| 1_00 | AC | 165 ms | 39408 KiB |
| 1_01 | AC | 222 ms | 41068 KiB |
| 1_02 | AC | 236 ms | 41180 KiB |
| 1_03 | AC | 237 ms | 41436 KiB |
| 1_04 | AC | 243 ms | 41180 KiB |
| 1_05 | AC | 236 ms | 41436 KiB |
| 1_06 | AC | 244 ms | 41452 KiB |
| 1_07 | AC | 239 ms | 41564 KiB |
| 1_08 | AC | 249 ms | 41452 KiB |
| 1_09 | AC | 242 ms | 41436 KiB |
| 1_10 | AC | 253 ms | 41452 KiB |
| 1_11 | AC | 244 ms | 41836 KiB |
| 1_12 | AC | 255 ms | 41452 KiB |
| 1_13 | AC | 249 ms | 41708 KiB |
| 1_14 | AC | 262 ms | 41452 KiB |
| 1_15 | AC | 260 ms | 41836 KiB |
| 1_16 | AC | 279 ms | 41724 KiB |
| 1_17 | AC | 256 ms | 41836 KiB |