結果
| 問題 |
No.527 ナップサック容量問題
|
| ユーザー |
|
| 提出日時 | 2020-09-14 09:36:21 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 618 bytes |
| コンパイル時間 | 309 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 45,304 KB |
| 最終ジャッジ日時 | 2024-06-22 00:38:41 |
| 合計ジャッジ時間 | 26,446 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 27 WA * 10 |
ソースコード
import numpy as np
N = int(input())
goods = [tuple(map(int, input().split())) for _ in range(N)]
V = int(input())
MAX = 100000
dp = np.zeros(MAX + 1, dtype=int)
ans_min = MAX + 1
ans_max = 0
for v, w in goods:
new_dp = dp.copy()
new_dp[w:] = np.maximum(dp[w:], dp[:-w] + v)
dp = new_dp
l = np.searchsorted(dp, V, side='left')
if 0 <= l <= MAX and dp[l] == V:
ans_min = min(ans_min, l)
r = np.searchsorted(dp, V, side='right') - 1
if 0 <= r <= MAX and dp[r] == V:
ans_max = max(ans_max, r)
print(ans_min if ans_min > 0 else 1)
print(ans_max if ans_max < MAX else 'inf')