結果
| 問題 |
No.2492 Knapsack Problem?
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-11-03 23:51:45 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 54 ms / 2,000 ms |
| コード長 | 691 bytes |
| コンパイル時間 | 573 ms |
| コンパイル使用メモリ | 82,388 KB |
| 実行使用メモリ | 63,872 KB |
| 最終ジャッジ日時 | 2024-09-25 21:37:48 |
| 合計ジャッジ時間 | 1,380 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 9 |
ソースコード
N, W = map(int, input().rstrip().split(" ")) # nは入力回数
vw_list = [list(map(int, input().split())) for _ in range(N)]
max_v = 0
max_v_dict = {}
w_list = []
for i in sorted(vw_list, key=lambda x: x[1]):
if i[0] > max_v:
max_v = i[0]
max_v_dict[i[1]] = max_v
w_list.append(i[1])
if W < w_list[0]:
print(-1)
exit()
while True:
c_idx = int(len(w_list) / 2)
if W < w_list[c_idx]:
w_list = w_list[:c_idx]
if W > w_list[-1]:
print(max_v_dict[w_list[-1]])
exit()
else:
w_list = w_list[c_idx:]
if len(w_list) == 1 or W < w_list[1]:
print(max_v_dict[w_list[0]])
exit()